Gravillons tutorial

De MicMac
Aller à : navigation, rechercher

Picto-liste.png Tutorials index


In this tutorial, we will approach general concepts, basics tools, and how to process an image dataset with overlaps with MicMac. This dataset is light by design (4 images), in order to focus on the MicMac tools. This tutorial is designed especially for MicMac beginners with a light photogrammetry background.


You can find this dataset at
Once you have downloaded it, you have to extract the ".zip" archive.


This dataset was created by L.Girod at the University of Oslo, Norway. This dataset was acquired to model a volcano model created by O.Galland. Files present in the directory are:

  • 4 images : 1.JPG, 2.JPG, 3.JPG, 4.JPG.

01 gravillons caroussel.png

  • GCP coordinates: Dico-Appuis.xml.
  • Measures of GCPs in images: Mesure-Appuis.xml.
  • 1 Mask: 1_Masq.tif/1_Masq.xml
  • 2 command scripts: (Linux) and gravillons.bat (Windows)


1 Tie-Points search

The first step of each MicMac pipline is to look for tie points (points that are seen in more than one image), this step is call image matching and performed by the command Tapioca :

mm3d Tapioca All ".*.JPG" 1500

The All option is used here because we know that all the images are going to have tie points with each other (they all depict the same area).

Go further
To process tie points at full resolution, use "-1" (instead of 1500 here):
mm3d Tapioca All ".*.JPG" -1

2 Internal Orientation+Relative Orientation

Photogrammetry is composed of three steps :

  • Internal Orientation : to determine camera parameters (focal length, PPA, PPS, distortion center, or distortion parameters).
  • Relative Orientation : to determine the relative position of each camera in an arbitrary coordinate system.
  • Absolute Orientation : to map the relative orientations to a scaled and oriented coordinate system (typically WGS84)

In digital photogrammetry, the two first steps are generally processed at the same time. In MicMac, the tools which perform internal and relative orientation is call Tapas :

mm3d Tapas FraserBasic ".*.JPG" Out=Arbitrary

This tool uses a compensation by least squares to determine camera parameters and relative orientations. The option "FraserBasic", correspond to a model of distortion for our camera. The "option" Out specify the name of the orientation directory (here it will be Ori-Arbitrary).

3 Visualize Relative Orientation

Relative Orientation
Meshlab visualization

MicMac include a tools which create a sparse point clouds (TPs) for visualization. This tool is AperiCloud :

mm3d AperiCloud ".*.JPG" Arbitrary

After this step, a ".ply" file will appear in your working directory, open it with Meshlab (Screenshot 1 : see Useful softwares for MicMac)

4 Absolute Orientation

Absolute Orientation
Absolute Orientation

For this datasets, Ground Control Points, are already measured in images (file "Mesure-Appuis.xml"). With 3 points (X,Y,Z) we can determine the 3D transformation between the arbitrary system (Relative Orientation) and the georeferenced system, this operation is call "Bascule" and can be performed by the command GCPBascule :

mm3d GCPBascule ".*.JPG" Arbitrary Ground_Init Dico-Appuis.xml Mesure-Appuis.xml

This tool process a first Bascule only with the GCPs (Directory Ori-Ground_Init), we will now calculate a second Bascule with GCPs and TPs. To do that, we use the command Campari :

mm3d Campari ".*.JPG" Ground_Init Ground

The new orientation is stocked in the directory "Ori-Ground". We can visualize it with AperiCloud :

mm3d AperiCloud ".*.JPG" Ground

You can visualize the points cloud created in Meshlab.

Go further
The file "Mesure-Appuis.xml" is already provided in the dataset, it contain the measurements of each GCPs in image coordinates (px). If you want to mesure the GCPs by yourself, you can use the tool SaisieAppuisInitQT before GCPBascule etc...
mm3d SaisieAppuisInitQT ".*.JPG" Arbitrary Dico-Appuis.xml Mesure-Appuis.xml

It launch a GUI to click on GCPs, when it's finish don't forget to save before leaving. It will create to files :

  • Mesure-Appuis-S2D.xml : Measurements of GCPs in images coordinates.
  • Mesure-Appuis-S3D.xml : Measurements of GCPs in Relative Orientation (here "Arbitrary"). Warning no unit.

So for the following command don't forget to use "Mesure-Appuis-S2D.xml" instead of "Mesure-Appuis.xml".

This command is best explained in the Pierrerue tutorial.

5 Create a depth map

3D Points Cloud

With any orientation directory, you can compute a depth map. The method consisting on using all the images to create a 3D model is call dense correlation or densification. In MicMac, it's performed by the command Malt :

mm3d Malt GeomImage ".*.JPG" Ground Master="1.JPG" ZoomF=2

6 Create a Dense Points Cloud

This last tool doesn't create directly a 3D point cloud. To generate it, you have to run an other tools, Nuage2Ply :

mm3d Nuage2Ply "MM-Malt-Img-1/NuageImProf_STD-MALT_Etape_7.xml" Attr="1.JPG" Out=1.ply RatioAttrCarte=2

Then visualize the 3D model "1.ply" in Meshlab.


With this tutorial, you went through a complete photogrammetric process with MicMac. This first tutorial was willingly easy and on a minimal dataset to help you kickstart your MicMac skills. To go further, try the next tutorials.