Skip to content

rpankka/micmac

Repository files navigation

This is a fork of the MICMAC project from https://geoportail.forge.ign.fr/

The initial intention on this is to do a major refactor of most of the code to make life simple to develop over it
The interface will be moved for a separate project. If suceeded, compile the interface will not need to requires be in source of micmac
Goals:
-	Lean down the repository: Documentation, applids and binaire-aux directories are supressed from now. Aux-binaries will
	be added only whe source code is available or get from external places. The removal of all this reduced in 450 M of useless
	files on a code repository
-	Turn the world shared: Static libraries are good for your machine development, but everyone that developed in different architectures and
	linux distributions knows that static gives us surprises when trying to run in different system than the one compiled.
-	Eliminate the StdAfx precompiled headers: Sounds nice in theory, "works" well on older compilers, but if you need change onew single thing 
	on a header included on the marvelous StdAfx.h, here it go. Hours of recompilation. So proper includes in cpp files,no more header blob.
-	Get rif of Qt4: Migrate everything to Qt5.
-	Unify code: There STL, boost, Qt4, Qt5 code. Try to move everything as possible to Qt5, even console applications.
-	Clean up CMake and do a proper usage

Other goals will be appearing on the process, and don't expect compile works on first days ( or weeks ), as long my off work time allows

This is an independent project and i'm doing on my own, if anyone has interest on helping, please contact me :-)

Below is the original README, which will be soon deprecated

----------------------------------------------------------------------------------------------------------------------------

Prerequisites

	Some external tools need to be present on your system for Micmac to run properly :
		- make (www.gnu.org/software/make)
			For parallel processes management.
		- convert, d'ImageMagick (www.imagemagick.org)
			For image format conversion.
		- exiftool (www.sno.phy.queensu.ca/~phil/exiftool) et exiv2 (www.exiv2.org)
			To read/write image meta-data.
        - proj4 (http://trac.osgeo.org/proj/)
            For coordinate system conversion.

	You can check before-hand that Micmac is able to find those programs by calling the command
		bin/mm3d CheckDependencies (in Micmac directory)

	'NOT FOUND' near one of the tools indicates either the specified executable is not on your disk or it cannot be found in the
directories of the PATH environment variable.
	There is also a special directory for tool finding which is named 'binaire-aux', in Micmac directory. When an external program
is needed, this directory is always scanned whatever the value of PATH.

	Additionnal notes for Windows

        You will need Visual C++ 2010 runtime redistribuables to run pre-compiled binaries of micmac
        (http://www.microsoft.com/fr-fr/download/details.aspx?id=5555).
        Both pre-compiled and compiled from source executables will need :
                Visual C++ 2005 runtime redistribuables (http://www.microsoft.com/fr-fr/download/details.aspx?id=3387)
                .Net Framework 2.0 (http://www.microsoft.com/fr-fr/download/details.aspx?id=1639)

		One of WINDIR or SystemRoot environment variable must be set to Windows' installation directory (“C:\Windows” in much cases).
This prevents Micmac from calling a convert.exe that is not ImageMagick's convert tool but a network utility used by the system.
		Since Windows does not have an easy-to-use package manager, a version of make, convert, exiftool and exiv2 are delivered with
the source and Windows binaries archives. They are placed in the “binaire-aux” directory.

Compiling from the sources' archive

	Prerequisites

		In addition of previously named tools, people willing to compile binaries from the source code will need to install the cmake
program (www.cmake.org). Linux and MacOS X users may also want to get X11 header files in order to generate graphical functionalities
like SaisieBasc, SaisieMasque, etc.
		The package of X11 headers is general called 'libx11-dev' under Linux distributions.
		X11-based tools are not available in the Windows version.
Windows users may need Qt5 libraries to generate graphical interfaces such as SaisieMasqQT.

	Compiling process for Linux / MacOS X

		- extract source files from the tarball :
			tar xvf micmac_source_revXXX.tar.gz
		- enter 'micmac' directory :
			cd micmac
		- create a directory for the build's intermediate files, then enter it :
			mkdir build
			cd build
		- generate makefiles using cmake
			cmake ../
		- process compilation :
			make install -j"cores number" (ex.: 'make install -j4')

	Compiling process for Visual C++ (Windows)

		The first steps are the same as for a Linux/MacOS build except for the 'make' call.
		Instead of makefiles, Cmake generates a Visual C++ solution, named 'micmac.sln'. Open it and compile the 'INSTALL' project. Be
sure to be in "Release" configuration, for Micmac is much faster built this way than in 'Debug' mode.
		Again, do not compile the entire solution but just the 'INSTALL' project, otherwise compiled binaries won't be copied in the 'bin'
directory and this will prevent Micmac from working.

Installation test

	The website logiciels.ign.fr (section image->Micmac->Téléchargement) also provides a test dataset called Boudha_dataset.zip.
	This file contains images and configuration files needed to compute the 'Boudha' example from Micmac's documentation. By calling
the script this way :
		./boudha_test.sh my_micmac_bin/
	assuming your working directory is the 'Boudha' directory contained in the file, you can process all the tool-chain until dense point
matching. 'my_micmac_bin' is a path to the 'bin' directory of your installation.
	ex.: ./boudha_test.sh ../micmac/bin/
	This example assumes 'Boudha' directory (containing data) and 'micmac' (installation directory) have the same parent directory. Notice
the ending '/', it's mandatory for the script to work.
	After some computation time, you may find three 'ply' files in the 'MEC-6-Im' directory with the three parts of the dense points cloud
of the statue's head. Open the PLY files with a viewer like meshlab to check everything proceeded correctly.

additionnal notes

	You can append the full path of the "bin" directory to "PATH" environment variable to call Micmac commands from anywhere. However, it is not necessary to add the "binaire-aux" directory to the PATH variable.
	For Linux / MacOSX, you have to append the path to the "lib" directory to "LD_LIBRARY_PATH" in .bashrc to be able to use QT tools. 
Add the following line: export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/micmac/lib/
	For MacOSX, if you want to use QT tools with precompiled binaries available on logiciels.ign.fr, you need to install Qt libraries for Mac from http://http://download.qt-project.org/archive/qt/4.8/4.8.4/  qt-opensource-mac-4.8.4.dmg

About

Fork from micmac image processing code to personal refactor

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published