This program provides a framework for Image Processing allowing you to split your processing chain into independent, reuseable modules which can also be run stand alone as well as in complex processing chains. It comes with a Graphical Processing Chain Editor and also a console interface for running the processing chains and modules.
Precompiled binaries are available for debian and ubuntu:
- Download the zip file with the packages for your system.
- unzip them into an empty directory.
- run
sudo dpkg -i *.deb
to start the installation and thensudo apt-get install -f
to install dependencies and finish the installation.
On other systems you need to compile UIPF yourself. See the "How to build"-section on how to do this.
The Documentation can be found in the /doc directory. Check the README.md file there for an overview.
We also have a demo video on vimeo.com: https://vimeo.com/133464857
The following dependencies are needed to build:
- yaml-cpp (https://github.com/jbeder/yaml-cpp), will be built by cmake
- Boost serialisation, needs to be available on the system
- Boost program-options
- Boost graph
- Boost filesystem
- OpenCV, version 2.3 or higher (currently untested with the 3.x branch)
- Qt 5, at least 5.3
- libglibmm-2.4
On Debian/Ubuntu you can install the above packages by running the following command:
sudo apt-get install libboost-serialization-dev libboost-program-options-dev libboost-filesystem-dev libboost-graph-dev libopencv-dev qtbase5-dev qtbase5-dev-tools libglibmm-2.4-dev
The following additional packages may be needed for building C++ code:
sudo apt-get install build-essential cmake pkg-config
If you want to work on the GUI, you may also want to install Qt Creator: To install Qt5, you can download '.run' offline or online installer from qt open source community download (https://www.qt.io/download-open-source/#section-2) (where 'qt-opensource-linux-x64-5.4.2.run' is the downloaded file, use the below command via terminal)
chmod +x qt-opensource-linux-x64-5.4.2.run
./qt-opensource-linux-x64-5.4.2.run
Run the following commands after cloning the repository in the repostiory base directory:
mkdir -p code/build
cd code/build
cmake ..
make
sudo make install
For a custom installation prefix you may specify it in the DESTDIR
for the make command, like so:
make DESTDIR=/tmp/uipf install
, which will install all uipf files under the directory /tmp/uipf
.
If something goes wrong you may run make VERBOSE=1
for more detailed output.
For a fast build you can run make -j 4
where 4 is the number of parallel executions to use. Be careful though, as
this may take a lot of RAM and make the system unstable.
When running the uipf binary after compiling you may see the following error:
$ uipf
uipf: error while loading shared libraries: libuipf-module.so.2.0: cannot open shared object file: No such file or directory
Solution: run sudo ldconfig
to make the linker aware of the newly installed library.
When you run UIPF you might see the following error:
libdc1394 error: Failed to initialize libdc1394
This is caused by opencv and in most cases can be savely ignored. See this question on stackoverflow for more details.
It seems to be fixed in libdc1394-22
version 2.2.5
which is included in Debian stretch.
If you are seening errors when modules could not be loaded there is most likely a problem with linking, i.e. missing symbols because some libraries are missing. To get more information on which symbols cause problems you can enable the linker debugging via LD_DEBUG
.
LD_DEBUG=bindings uipf -l 2>&1 | grep -v "binding file"
This will run uipf -l
to list all modules available to uipf, and print debug information about library loading via the environment variable LD_DEBUG=bindings
. It will also redirect stderr
to stdout
(2>&1
) and filter out irrelevant information to make it easier to see the error: grep -v "binding file"
.
TBD.
Please read the CONTRIBUTING.md for details.
This work is licensed under the BSD 2-clause License. Check the LICENSE file for the license terms.