Quickstart guide¶
Installation¶
Before installing imreg_dft
, it is good to have dependencies sorted out.
numpy
and scipy
should be installed using package managers on Linux, or downloaded from the web for OSX and Windows.
The easy(_install) way¶
You can get the package from PyPi, which means that if you have Python setuptools
installed, you can install imreg_dft
using easy_install
.
For a user (i.e. not system-wide) install, insert --user
between easy_install
and imreg_dft
.
User install does not require administrator priviledges, but you may need to add the installation directories to your system path, otherwise the ird script won’t be visible.
[user@linuxbox ~]$ easy_install imreg_dft
If you have pip
installed, you can use it instead of easy_install
.
pip
even allows you to install from the source code repository:
[user@linuxbox ~]$ pip install git+https://github.com/matejak/imreg_dft.git
The source way (also easy)¶
The other means is to check out the repository and install it locally (or even run imreg_dft
without installation).
You will need the git
version control system to obtain the source code:
[user@linuxbox ~]$ git clone https://github.com/matejak/imreg_dft.git
[user@linuxbox ~]$ cd imreg_dft
[user@linuxbox imreg_dft]$ python setup.py install
...
As with other Python packages, there is a setup.py
.
To install imreg_dft
, run python setup.py install
.
Add the --user
argument after install
to perform user (i.e. not system-wide) install.
As stated in the previous paragraph, the user install does not require administrator priviledges, but you may need to add the installation directories to your system path, otherwise the ird script won’t be visible.
If you want to try imreg_dft
without installing it, feel free to do so.
The package is in the src
directory.
Quickstart¶
A succesful installation means that:
- The Python interpreter can import
imreg_dft
. - There is the
ird
script available to you, e.g. runningird --version
should not end by errors of any kind.
Note
If you have installed the package using pip
or easy_install
, you don’t have the example files, images nor test files.
To get them, download the source archive from PyPi or release archive from Github and unpack them.
Python examples¶
The following examples are located in the resources/code
directory of the project repository or its source tree as similarity.py
and translation.py
.
You can launch them from their location once you have installed imreg_dft
to observe the output.
The full-blown similarity function that returns parameters (and the transormed image):
import os
import scipy as sp
import scipy.misc
import imreg_dft as ird
basedir = os.path.join('..', 'examples')
# the TEMPLATE
im0 = sp.misc.imread(os.path.join(basedir, "sample1.png"), True)
# the image to be transformed
im1 = sp.misc.imread(os.path.join(basedir, "sample3.png"), True)
result = ird.similarity(im0, im1, numiter=3)
assert "timg" in result
# Maybe we don't want to show plots all the time
if os.environ.get("IMSHOW", "yes") == "yes":
import matplotlib.pyplot as plt
ird.imshow(im0, im1, result['timg'])
plt.show()
Or just the translation:
import os
import scipy as sp
import scipy.misc
import imreg_dft as ird
basedir = os.path.join('..', 'examples')
# the TEMPLATE
im0 = sp.misc.imread(os.path.join(basedir, "sample1.png"), True)
# the image to be transformed
im1 = sp.misc.imread(os.path.join(basedir, "sample2.png"), True)
result = ird.translation(im0, im1)
tvec = result["tvec"].round(4)
# the Transformed IMaGe.
timg = ird.transform_img(im1, tvec=tvec)
# Maybe we don't want to show plots all the time
if os.environ.get("IMSHOW", "yes") == "yes":
import matplotlib.pyplot as plt
ird.imshow(im0, im1, timg)
plt.show()
print("Translation is {}, success rate {:.4g}"
.format(tuple(tvec), result["success"]))
Command-line script examples¶
Please see the corresponding section that is full of examples.
Do not forget¶
These steps should go before the Quickstart section, but they come now as this is a quickstart guide.
Tests¶
If you have downloaded the source files, you can run tests after installation.
There are now unit tests and regression tests.
You can execute them by going to the tests
subdirectory and running
[user@linuxbox imreg_dft]$ cd tests
[user@linuxbox tests]$ make help
make[1]: Entering directory '/home/user/imreg_dft/tests'
Run either 'make check' or 'make check COVERAGE=<coverage command name>'
You may also append 'PYTHON=<python executable>' if you don't use coverage
make[1]: Leaving directory '/home/user/imreg_dft/tests'
[user@linuxbox tests]$ make check
...
If you have the coverage
module installed, you also have a coverage
(or perhaps coverage2
) scripts in your path.
You can declare that and therefore have the tests ran with coverage support:
[user@linuxbox tests]$ make check COVERAGE=coverage2
...
In any way, if you see something like
[user@linuxbox tests]$ make check
...
make[1]: Leaving directory '/home/user/imreg_dft/tests'
* * * * * * * * * * * * * * * * * * * * *
Rejoice, tests have passed successfully!
* * * * * * * * * * * * * * * * * * * * *
it is a clear sign that there indeed was no error encountered during the tests at all.
Documentation¶
Although you can read the documentation on readthedocs.org (bleeding-edge) and pythonhosted.org (with images), you can generate your own easily.
You just have to check out the requirements_docs.txt
file at the root of the project and make sure you have all modules that are mentioned there.
You also need to have imreg_dft
installed prior to documentation generation.
Also be sure to have the source files.
In the source tree, go to the doc
directory there and run make html
or make latexpdf
there.