Malt : Différence entre versions

De MicMac
Aller à : navigation, rechercher
(Add error messages)
 
(8 révisions intermédiaires par 4 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
 +
[[Image:picto-liste.png|25px]] [[Command|List of commands]]
 
==Description==
 
==Description==
 
Malt is a simplified interface to MicMac. Currently it can handle matching in ground geometry and ground-image geometry. Ground geometry is adapted when the scene can be described by a single function Z = f (X, Y ) (with X, Y, Z being euclidean coordinates); this case occurs quite often when the scene is relatively flat and the acquisition is made by photo acquired orthogonally to the main plane. The main use cases are:
 
Malt is a simplified interface to MicMac. Currently it can handle matching in ground geometry and ground-image geometry. Ground geometry is adapted when the scene can be described by a single function Z = f (X, Y ) (with X, Y, Z being euclidean coordinates); this case occurs quite often when the scene is relatively flat and the acquisition is made by photo acquired orthogonally to the main plane. The main use cases are:
Ligne 8 : Ligne 9 :
 
===Syntax===
 
===Syntax===
 
The basic syntax requires 3 args :
 
The basic syntax requires 3 args :
<code>mm3d Malt Type Pattern Orient</code>
+
<pre>mm3d Malt Type Image_Pattern Orientation</pre>
  
 
*Second arg specifies the subset of images.
 
*Second arg specifies the subset of images.
Ligne 18 : Ligne 19 :
 
*GeomImage
 
*GeomImage
  
==Ortho==
+
====Ortho====
 
For a matching adapted to ortho photo generation.
 
For a matching adapted to ortho photo generation.
==UrbanMNE==
+
====UrbanMNE====
 
For a matching adapted to urban digital elevation model.
 
For a matching adapted to urban digital elevation model.
==GeomImage==
+
====GeomImage====
 
For a matching in ground image geometry.
 
For a matching in ground image geometry.
  
===Help===  
+
==Help==
A basic help can be asked with <code> mm3d Malt -help </code> <br>
+
A basic help can be asked with  
 +
<pre> mm3d Malt -help </pre> <br>
 +
 
 
Mandatory unnamed args :  
 
Mandatory unnamed args :  
*<span style="font-family:times roman;">string :: {Correlation mode (must be in allowed enumerated values)}''</span style>
+
*string :: {Correlation mode (must be in allowed enumerated values)}
*<span style="font-family:times roman;">string :: {Full Name (Dir+Pattern)}''</span style>
+
*string :: {Full Name (Dir+Pattern)}
*<span style="font-family:times roman;">string :: {Orientation}''</span style>
+
*string :: {Orientation}
  
 
Named args :  
 
Named args :  
*<span style="font-family:times roman;">''[Name=Master] string :: { Master image must exist iff Mode=GeomImage, AUTO for Using result of AperoChImSecMM}''</span style>
+
*[Name=Master] string :: { Master image must exist iff Mode=GeomImage, AUTO for Using result of AperoChImSecMM}
*<span style="font-family:times roman;">''[Name=SzW] INT :: {Correlation Window Size (1 means 3x3)}''</span style>
+
*[Name=SzW] INT :: {Correlation Window Size (1 means 3x3)}
*<span style="font-family:times roman;">''[Name=CorMS] bool :: {New Multi Scale correlation option, def=false, availab
+
*[Name=CorMS] bool :: {New Multi Scale correlation option, def=false, available in image geometry}
le in image geometry}''</span style>
+
*[Name=UseGpu] bool :: {Use Cuda acceleration, def=false}
*<span style="font-family:times roman;">''[Name=UseGpu] bool :: {Use Cuda acceleration, def=false}''</span style>
+
*[Name=Regul] REAL :: {Regularization factor}
*<span style="font-family:times roman;">''[Name=Regul] REAL :: {Regularization factor}''</span style>
+
*[Name=DirMEC] string :: {Subdirectory where the results will be stored}
*<span style="font-family:times roman;">''[Name=DirMEC] string :: {Subdirectory where the results will be stored}''</span style>
+
*[Name=DirOF] string :: {Subdirectory for ortho (def in Ortho-${DirMEC}) }
*<span style="font-family:times roman;">''[Name=DirOF] string :: {Subdirectory for ortho (def in Ortho-${DirMEC}) }''</span style>
+
*[Name=UseTA] INT :: {Use TA as Masq when it exists (Def is true)}
*<span style="font-family:times roman;">''[Name=UseTA] INT :: {Use TA as Masq when it exists (Def is true)}''</span style>
+
*[Name=ZoomF] INT :: {Final zoom, (Def 2 in ortho,1 in MNE)}
*<span style="font-family:times roman;">''[Name=ZoomF] INT :: {Final zoom, (Def 2 in ortho,1 in MNE)}''</span style>
+
*[Name=ZoomI] INT :: {Initial Zoom, (Def depends on number of images)}
*<span style="font-family:times roman;">''[Name=ZoomI] INT :: {Initial Zoom, (Def depends on number of images)}''</span style>
+
*[Name=ZPas] REAL :: {Quantification step in equivalent pixel (def=0.4)}
*<span style="font-family:times roman;">''[Name=ZPas] REAL :: {Quantification step in equivalent pixel (def=0.4)}''</span style>
+
*[Name=Exe] INT :: {Execute command (Def is true !!)}
*<span style="font-family:times roman;">''[Name=Exe] INT :: {Execute command (Def is true !!)}''</span style>
+
*[Name=Repere] string :: {Local system of coordinates}
*<span style="font-family:times roman;">''[Name=Repere] string :: {Local system of coordinates}''</span style>
+
*[Name=NbVI] INT :: {Number of Visible Images required (Def = 3)}
*<span style="font-family:times roman;">''[Name=NbVI] INT :: {Number of Visible Images required (Def = 3)}''</span style>
+
*[Name=HrOr] bool :: {Compute High Resolution Ortho}
*<span style="font-family:times roman;">''[Name=HrOr] bool :: {Compute High Resolution Ortho}''</span style>
+
*[Name=LrOr] bool :: {Compute Low Resolution Ortho}
*<span style="font-family:times roman;">''[Name=LrOr] bool :: {Compute Low Resolution Ortho}''</span style>
+
*[Name=DirTA] string :: {Directory of TA (for mask)}
*<span style="font-family:times roman;">''[Name=DirTA] string :: {Directory of TA (for mask)}''</span style>
+
*[Name=Purge] bool :: {Purge the directory of Results before compute}
*<span style="font-family:times roman;">''[Name=Purge] bool :: {Purge the directory of Results before compute}''</span style>
+
*[Name=DoMEC] bool :: {Do the Matching}
*<span style="font-family:times roman;">''[Name=DoMEC] bool :: {Do the Matching}''</span style>
+
*[Name=DoOrtho] bool :: {Do the Ortho (Def=mDoMEC)}
*<span style="font-family:times roman;">''[Name=DoOrtho] bool :: {Do the Ortho (Def=mDoMEC)}''</span style>
+
*[Name=UnAnam] bool :: {Compute the un-anamorphosed DTM and ortho (Def context dependent)}
*<span style="font-family:times roman;">''[Name=UnAnam] bool :: {Compute the un-anamorphosed DTM and ortho (Def context dependent)}''</span style>
+
*[Name=2Ortho] bool :: {Do both anamorphosed ans un-anamorphosed ortho (when applyable) }
*<span style="font-family:times roman;">''[Name=2Ortho] bool :: {Do both anamorphosed ans un-anamorphosed ortho (when applyable) }''</span style>
+
*[Name=ZInc] REAL :: {Incertitude on Z (in proportion of average depth, def=0.3) }
*<span style="font-family:times roman;">''[Name=ZInc] REAL :: {Incertitude on Z (in proportion of average depth, def=0.3) }''</span style>
+
*[Name=DefCor] REAL :: {Default Correlation in un correlated pixels (Def=0.2)}
*<span style="font-family:times roman;">''[Name=DefCor] REAL :: {Default Correlation in un correlated pixels (Def=0.2)}''</span style>
+
*[Name=CostTrans] REAL :: {Cost to change from correlation to uncorrelation (Def=2.0) }
*<span style="font-family:times roman;">''[Name=CostTrans] REAL :: {Cost to change from correlation to uncorrelation (Def=2.0) }''</span style>
+
*[Name=Etape0] INT :: {First Step (Def=1) }
*<span style="font-family:times roman;">''[Name=Etape0] INT :: {First Step (Def=1) }''</span style>
+
*[Name=AffineLast] bool :: {Affine Last Etape with Step Z/2 (Def=true) }
*<span style="font-family:times roman;">''[Name=AffineLast] bool :: {Affine Last Etape with Step Z/2 (Def=true) }''</span style>
+
*[Name=ResolOrtho] REAL :: {Resolution of ortho, relatively to images (Def=1.0; 0.5 means smaller images) }
*<span style="font-family:times roman;">''[Name=ResolOrtho] REAL :: {Resolution of ortho, relatively to images (Def=1.0; 0.5 means smaller images) }''</span style>
+
*[Name=ImMNT] string :: {Filter to select images used for matching (Def All, usable with ortho) }
*<span style="font-family:times roman;">''[Name=ImMNT] string :: {Filter to select images used for matching (Def All, usable with ortho) }''</span style>
+
*[Name=ImOrtho] string :: {Filter to select images used for ortho (Def All) }
*<span style="font-family:times roman;">''[Name=ImOrtho] string :: {Filter to select images used for ortho (Def All) }''</span style>
+
*[Name=ZMoy] REAL :: {Average value of Z}
*<span style="font-family:times roman;">''[Name=ZMoy] REAL :: {Average value of Z}''</span style>
+
*[Name=Spherik] bool :: {If true the surface for rectification is a sphere}
*<span style="font-family:times roman;">''[Name=Spherik] bool :: {If true the surface for rectification is a sphere}''</span style>
+
*[Name=WMI] REAL :: {Mininum width of reduced images (to fix ZoomInit)}
*<span style="font-family:times roman;">''[Name=WMI] REAL :: {Mininum width of reduced images (to fix ZoomInit)}''</span style>
+
*[Name=MasqIm] string :: {Masq per Im; Def None; Use "Masq" for standard result of SaisieMasq}
*<span style="font-family:times roman;">''[Name=MasqIm] string :: {Masq per Im; Def None; Use "Masq" for standard result of SaisieMasq}''</span style>
+
*[Name=MasqImGlob] string :: {Glob Masq per Im : if uses, give full name of masq (for ex toto.tif) }
*<span style="font-family:times roman;">''[Name=MasqImGlob] string :: {Glob Masq per Im : if uses, give full name of masq (for ex toto.tif) }''</span style>
+
*[Name=IncMax] REAL :: {Maximum incidence of image}
*<span style="font-family:times roman;">''[Name=IncMax] REAL :: {Maximum incidence of image}''</span style>
+
*[Name=BoxClip] Box2dr :: {To Clip Computation, normalized image coordinates ([0,0,1,1] means full box)}
*<span style="font-family:times roman;">''[Name=BoxClip] Box2dr :: {To Clip Computation, normalized image coordinates ([0,0,1,1] means full box)}''</span style>
+
*[Name=BoxTerrain] Box2dr :: {([Xmin,Ymin,Xmax,Ymax])}
*<span style="font-family:times roman;">''[Name=BoxTerrain] Box2dr :: {([Xmin,Ymin,Xmax,Ymax])}''</span style>
+
*[Name=ResolTerrain] REAL :: {Ground resolution (pixel size in ground unit) for ZoomF=1 (Def automatically computed)}
*<span style="font-family:times roman;">''[Name=ResolTerrain] REAL :: {Ground Resol (Def automatically computed)}''</span style>
+
*[Name=RoundResol] bool :: {Use rounding of resolution (def context dependent,tuning purpose)}
*<span style="font-family:times roman;">''[Name=RoundResol] bool :: {Use rounding of resolution (def context dependent,tuning purpose)}''</span style>
+
*[Name=GCC] bool :: {Generate export for Cube Correlation}
*<span style="font-family:times roman;">''[Name=GCC] bool :: {Generate export for Cube Correlation}''</span style>
+
*[Name=EZA] bool :: {Export Z Absolute}
*<span style="font-family:times roman;">''[Name=EZA] bool :: {Export Z Absolute}''</span style>
+
*[Name=Equiv] vector<std::string> :: {Equivalent classes, as a set of pattern, def=None}
*<span style="font-family:times roman;">''[Name=Equiv] vector<std::string> :: {Equivalent classes, as a set of pattern, def=None}''</span style>
+
*[Name=MOri] string :: {Mode Orientation (GRID or RTO) if not XML frame camera}
*<span style="font-family:times roman;">''[Name=MOri] string :: {Mode Orientation (GRID or RTO) if not XML frame camera}''</span style>
+
*[Name=MaxFlow] bool :: {Use MaxFlow(MinCut) instead of 2D ProgDyn (SGM), slower sometime better, Def=false }
*<span style="font-family:times roman;">''[Name=MaxFlow] bool :: {Use MaxFlow(MinCut) instead of 2D ProgDyn (SGM), slower sometime better, Def=false }''</span style>
+
*[Name=SzRec] INT :: {Sz of overlap between computation tiles, Def=50; for some rare side effects}
*<span style="font-family:times roman;">''[Name=SzRec] INT :: {Sz of overlap between computation tiles, Def=50; for some rare side effects}''</span style>
+
*[Name=Masq3D] string :: {Name of 3D mask}
*<span style="font-family:times roman;">''[Name=Masq3D] string :: {Name of 3D Masq}''</span style>
+
*[Name=NbProc] INT :: {Nb Proc Used}
*<span style="font-family:times roman;">''[Name=NbProc] INT :: {Nb Proc Used}''</span style>
+
*[Name=PSIBN] REAL :: {Penal for Automatic Selection of Images to Best Nadir (Def=-1, don't use)}
*<span style="font-family:times roman;">''[Name=PSIBN] REAL :: {Penal for Automatic Selection of Images to Best Nadir (Def=-1, dont use)}''</span style>
+
*[Name=InternalNoIncid] bool :: {Internal Use}
*<span style="font-family:times roman;">''[Name=InternalNoIncid] bool :: {Internal Use}''</span style>
+
*[Name=PtDebug] Pt2di :: {Internal Use (Point of debuging)}
*<span style="font-family:times roman;">''[Name=PtDebug] Pt2di :: {Internal Use (Point of debuging)}''</span style>
+
  
 
===Example===
 
===Example===
 
An example with data set of Mur Saint Martin :
 
An example with data set of Mur Saint Martin :
  
<code> mm3d Malt Ortho "./IMGP41((6[7-9])|([7-8][0-9])).JPG" Basc </code>
+
<pre> mm3d Malt Ortho "./IMGP41((6[7-9])|([7-8][0-9])).JPG" Basc </pre>
 +
 
 +
==Notes about DEM==
 +
 
 +
Malt generates DEMs which can be retrieve in a folder named MEC-MALT by default :
 +
<pre> Z_NumA_DeZoomB_STD-MALT.tif </pre>
 +
where A B dependens on the step of the computation and of the arguments of the Malt command.
 +
 
 +
 
 +
Generated DEMs elevation values '''are not recorded''' in a metric unit unless you specify the '''EZA=1''' option for Malt.
 +
 
 +
The conversion values are stored in the file :
 +
<pre>Z_NumA_DeZoomB_STD-MALT.xml </pre>
 +
 
 +
==Error messages==
 +
* outside reading file in RLE mode : occurs in rare cases where mask image size doesn't match image size.

Version actuelle en date du 23 juillet 2022 à 07:59

Picto-liste.png List of commands

Description

Malt is a simplified interface to MicMac. Currently it can handle matching in ground geometry and ground-image geometry. Ground geometry is adapted when the scene can be described by a single function Z = f (X, Y ) (with X, Y, Z being euclidean coordinates); this case occurs quite often when the scene is relatively flat and the acquisition is made by photo acquired orthogonally to the main plane. The main use cases are:

  • modelization of facades to generate ortho photo in architecture;
  • modelization of earth surface from aerial acquisition;

Ground image geometry is very general and flexible and can be used in almost all acquisition. Its main drawbacks is that it requires 16 some interaction to select the master images, the mask of these images and the associated secondary images.

Syntax

The basic syntax requires 3 args :

mm3d Malt Type Image_Pattern Orientation
  • Second arg specifies the subset of images.
  • Third arg specifies the orientation.

Allowed commands

  • Ortho
  • UrbanMNE
  • GeomImage

Ortho

For a matching adapted to ortho photo generation.

UrbanMNE

For a matching adapted to urban digital elevation model.

GeomImage

For a matching in ground image geometry.

Help

A basic help can be asked with

 mm3d Malt -help 

Mandatory unnamed args :

  • string :: {Correlation mode (must be in allowed enumerated values)}
  • string :: {Full Name (Dir+Pattern)}
  • string :: {Orientation}

Named args :

  • [Name=Master] string :: { Master image must exist iff Mode=GeomImage, AUTO for Using result of AperoChImSecMM}
  • [Name=SzW] INT :: {Correlation Window Size (1 means 3x3)}
  • [Name=CorMS] bool :: {New Multi Scale correlation option, def=false, available in image geometry}
  • [Name=UseGpu] bool :: {Use Cuda acceleration, def=false}
  • [Name=Regul] REAL :: {Regularization factor}
  • [Name=DirMEC] string :: {Subdirectory where the results will be stored}
  • [Name=DirOF] string :: {Subdirectory for ortho (def in Ortho-${DirMEC}) }
  • [Name=UseTA] INT :: {Use TA as Masq when it exists (Def is true)}
  • [Name=ZoomF] INT :: {Final zoom, (Def 2 in ortho,1 in MNE)}
  • [Name=ZoomI] INT :: {Initial Zoom, (Def depends on number of images)}
  • [Name=ZPas] REAL :: {Quantification step in equivalent pixel (def=0.4)}
  • [Name=Exe] INT :: {Execute command (Def is true !!)}
  • [Name=Repere] string :: {Local system of coordinates}
  • [Name=NbVI] INT :: {Number of Visible Images required (Def = 3)}
  • [Name=HrOr] bool :: {Compute High Resolution Ortho}
  • [Name=LrOr] bool :: {Compute Low Resolution Ortho}
  • [Name=DirTA] string :: {Directory of TA (for mask)}
  • [Name=Purge] bool :: {Purge the directory of Results before compute}
  • [Name=DoMEC] bool :: {Do the Matching}
  • [Name=DoOrtho] bool :: {Do the Ortho (Def=mDoMEC)}
  • [Name=UnAnam] bool :: {Compute the un-anamorphosed DTM and ortho (Def context dependent)}
  • [Name=2Ortho] bool :: {Do both anamorphosed ans un-anamorphosed ortho (when applyable) }
  • [Name=ZInc] REAL :: {Incertitude on Z (in proportion of average depth, def=0.3) }
  • [Name=DefCor] REAL :: {Default Correlation in un correlated pixels (Def=0.2)}
  • [Name=CostTrans] REAL :: {Cost to change from correlation to uncorrelation (Def=2.0) }
  • [Name=Etape0] INT :: {First Step (Def=1) }
  • [Name=AffineLast] bool :: {Affine Last Etape with Step Z/2 (Def=true) }
  • [Name=ResolOrtho] REAL :: {Resolution of ortho, relatively to images (Def=1.0; 0.5 means smaller images) }
  • [Name=ImMNT] string :: {Filter to select images used for matching (Def All, usable with ortho) }
  • [Name=ImOrtho] string :: {Filter to select images used for ortho (Def All) }
  • [Name=ZMoy] REAL :: {Average value of Z}
  • [Name=Spherik] bool :: {If true the surface for rectification is a sphere}
  • [Name=WMI] REAL :: {Mininum width of reduced images (to fix ZoomInit)}
  • [Name=MasqIm] string :: {Masq per Im; Def None; Use "Masq" for standard result of SaisieMasq}
  • [Name=MasqImGlob] string :: {Glob Masq per Im : if uses, give full name of masq (for ex toto.tif) }
  • [Name=IncMax] REAL :: {Maximum incidence of image}
  • [Name=BoxClip] Box2dr :: {To Clip Computation, normalized image coordinates ([0,0,1,1] means full box)}
  • [Name=BoxTerrain] Box2dr :: {([Xmin,Ymin,Xmax,Ymax])}
  • [Name=ResolTerrain] REAL :: {Ground resolution (pixel size in ground unit) for ZoomF=1 (Def automatically computed)}
  • [Name=RoundResol] bool :: {Use rounding of resolution (def context dependent,tuning purpose)}
  • [Name=GCC] bool :: {Generate export for Cube Correlation}
  • [Name=EZA] bool :: {Export Z Absolute}
  • [Name=Equiv] vector<std::string> :: {Equivalent classes, as a set of pattern, def=None}
  • [Name=MOri] string :: {Mode Orientation (GRID or RTO) if not XML frame camera}
  • [Name=MaxFlow] bool :: {Use MaxFlow(MinCut) instead of 2D ProgDyn (SGM), slower sometime better, Def=false }
  • [Name=SzRec] INT :: {Sz of overlap between computation tiles, Def=50; for some rare side effects}
  • [Name=Masq3D] string :: {Name of 3D mask}
  • [Name=NbProc] INT :: {Nb Proc Used}
  • [Name=PSIBN] REAL :: {Penal for Automatic Selection of Images to Best Nadir (Def=-1, don't use)}
  • [Name=InternalNoIncid] bool :: {Internal Use}
  • [Name=PtDebug] Pt2di :: {Internal Use (Point of debuging)}

Example

An example with data set of Mur Saint Martin :

 mm3d Malt Ortho "./IMGP41((6[7-9])|([7-8][0-9])).JPG" Basc 

Notes about DEM

Malt generates DEMs which can be retrieve in a folder named MEC-MALT by default :

 Z_NumA_DeZoomB_STD-MALT.tif 

where A B dependens on the step of the computation and of the arguments of the Malt command.


Generated DEMs elevation values are not recorded in a metric unit unless you specify the EZA=1 option for Malt.

The conversion values are stored in the file :

Z_NumA_DeZoomB_STD-MALT.xml 

Error messages

  • outside reading file in RLE mode : occurs in rare cases where mask image size doesn't match image size.