Skip to content

Commit

Permalink
Merge branch 'master' into Banana
Browse files Browse the repository at this point in the history
  • Loading branch information
luc-girod committed Apr 20, 2020
2 parents 5add283 + 9cfb1ba commit aeac108
Show file tree
Hide file tree
Showing 170 changed files with 16,594 additions and 606 deletions.
12 changes: 12 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,9 @@ option(BUILD_BENCH "compile low-level test bench" OFF)
# Interfaces de saisie des param�tres
option(WITH_QT5 "compile Qt interfaces" OFF)

# Graphiz library
option(WITH_GRAPHVIZ "Use graphviz" OFF)

# Compilateur C++11
option(WITH_CPP11 "Compilateur C++11" ON)

Expand Down Expand Up @@ -669,6 +672,15 @@ configure_file(

set_source_files_properties("src/tiff/el_dcraw.c" elise PROPERTIES COMPILE_FLAGS "-O2 -Wall" COMPILE_DEFINITIONS "")

if(${WITH_GRAPHVIZ})
INCLUDE(FindPkgConfig)
PKG_SEARCH_MODULE(gvc REQUIRED libgvc libcgraph libcdt)
LINK_DIRECTORIES(${gvc_LIBRARY_DIRS})
INCLUDE_DIRECTORIES(${gvc_INCLUDE_DIRS})

message(STATUS "-----> using graphviz library")
endif()

#~ message("QT_QMAKE_EXECUTABLE = ${QT_QMAKE_EXECUTABLE}")
#~ message("QT_MOC_EXECUTABLE = ${QT_MOC_EXECUTABLE}")
#~ print_list(QT_LIBRARIES)
Expand Down
12 changes: 11 additions & 1 deletion CodeGenere/File2String/Str_ParamApero.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#include "StdAfx.h"
const char * theNameVar_ParamApero[1845] = {
const char * theNameVar_ParamApero[1855] = {
"<GenCpp>\n",
"\n",
"<Verbatim File=\".h.cpp\">\n",
Expand Down Expand Up @@ -975,6 +975,16 @@ const char * theNameVar_ParamApero[1845] = {
"\n",
"\n",
" <SectionChantier Nb=\"1\">\n",
" <!-- This section is used when we want to force a pose to be closed to a value -->\n",
" <RappelPose Nb=\"?\">\n",
" <IdOrient Nb=\"1\" Type=\"std::string\"> </IdOrient>\n",
" <SigmaC Nb=\"1\" Type=\"double\"> </SigmaC> <!-- Ground Units -->\n",
" <SigmaR Nb=\"1\" Type=\"double\"> </SigmaR> <!-- Radian -->\n",
" <PatternApply Nb=\"1\" Type=\"cElRegex_Ptr\"> </PatternApply>\n",
" </RappelPose>\n",
"\n",
" <!-- Si >=0, l'attribut de ce numero est utilise comme ponderation de points dans le nouveau format -->\n",
" <NumAttrPdsNewF Nb=\"?\" Type=\"int\" Def=\"-1\"> </NumAttrPdsNewF>\n",
"\n",
" <RatioMaxDistCS Type=\"double\" Nb=\"?\" Def=\"30.0\" > </RatioMaxDistCS>\n",
" <!-- Permet d'eliminer les tie points de maniere reproductible\n",
Expand Down
42 changes: 41 additions & 1 deletion CodeGenere/File2String/Str_ParamChantierPhotogram.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#include "StdAfx.h"
const char * theNameVar_ParamChantierPhotogram[2124] = {
const char * theNameVar_ParamChantierPhotogram[2164] = {
"<GenCpp>\n",
"\n",
"\n",
Expand Down Expand Up @@ -719,6 +719,8 @@ const char * theNameVar_ParamChantierPhotogram[2124] = {
" <NamePt Nb=\"1\" Type=\"std::string\"> </NamePt>\n",
" <Incertitude Nb=\"1\" Type=\"Pt3dr\"> </Incertitude>\n",
" <UseForRTA Nb=\"?\" Type=\"bool\" Def=\"true\"> </UseForRTA>\n",
" <Norm2Surf Nb=\"?\" Type=\"Pt3dr\"> </Norm2Surf> <!-- if specified, can be used for visibility -->\n",
" <TetaN2SHor Nb=\"?\" Type=\"double\"> </TetaN2SHor> <!-- Angle in degree for Norm2Surf horizontal -->\n",
" </OneAppuisDAF>\n",
" </DicoAppuisFlottant>\n",
" \n",
Expand Down Expand Up @@ -1770,6 +1772,7 @@ const char * theNameVar_ParamChantierPhotogram[2124] = {
"-->\n",
" <StructBlockCam Nb=\"*\" Class=\"true\" ToReference=\"true\">\n",
" <KeyIm2TimeCam Nb=\"1\" Type=\"std::string\"> </KeyIm2TimeCam>\n",
" <MasterGrp Nb=\"?\" Type=\"std::string\"> </MasterGrp>\n",
"\n",
" <LiaisonsSHC Nb=\"?\">\n",
" <ParamOrientSHC Nb=\"*\">\n",
Expand Down Expand Up @@ -2111,6 +2114,43 @@ const char * theNameVar_ParamChantierPhotogram[2124] = {
" <OneCmd Nb=\"*\" RefType=\"Xml_Specif1MMCmd\"> </OneCmd>\n",
"</Xml_SpecifAllMMCmd>\n",
"\n",
"\n",
"<Xml_ParamGraphStereopolis Nb=\"1\" Class=\"true\" ToReference=\"true\">\n",
" <!-- Generally INS. BTW this used for trajectography -->\n",
" <NameGrpC Nb=\"1\" Type=\"std::string\"> </NameGrpC>\n",
" <!-- Section to compute pair between consecutives -->\n",
" <GS_SectionLinear Nb=\"?\">\n",
" <GS_OneLinear Nb=\"*\">\n",
" <!-- Take only one out of period. For inside head, may be convenient to limite size-->\n",
" <Period Nb=\"?\" Type=\"int\" Def=\"1\"> </Period> \n",
" <DeltaMin Nb=\"1\" Type=\"int\"> </DeltaMin>\n",
" <DeltaMax Nb=\"1\" Type=\"int\"> </DeltaMax> <!-- Excluded -->\n",
" <CpleGrp Nb=\"+\" Type=\"cCpleString\"> </CpleGrp> <!-- Name val -->\n",
" </GS_OneLinear>\n",
" </GS_SectionLinear>\n",
"\n",
" <!-- Section to compute \"many\" pair when cross happens -->\n",
" <GS_SectionCross Nb=\"?\">\n",
" <DistMax Nb=\"1\" Type=\"double\"> </DistMax>\n",
" <DistCurvMin Nb=\"1\" Type=\"double\"> </DistCurvMin>\n",
" <!-- To avoid false cross with overlapping trajectory -->\n",
" <AngleMinSpeed Nb=\"1\" Type=\"double\"> </AngleMinSpeed>\n",
" <DistMinTraj Nb=\"1\" Type=\"double\"> </DistMinTraj>\n",
" <ListCam Nb=\"+\" Type=\"std::string\"> </ListCam> <!-- Not All Cam are in one bloc for cross -->\n",
" </GS_SectionCross>\n",
"\n",
" <!-- Section to compute pair with overlaping trajectory -->\n",
" <GS_SectionOverlapingTraj Nb=\"?\">\n",
" <AngleMaxSpeed Nb=\"1\" Type=\"double\"> </AngleMaxSpeed>\n",
" <DistMaxTraj Nb=\"1\" Type=\"double\"> </DistMaxTraj>\n",
" <OneInterv_OT Nb=\"+\">\n",
" <DistMax Nb=\"1\" Type=\"double\"> </DistMax>\n",
" <CpleGrp Nb=\"+\" Type=\"cCpleString\"> </CpleGrp> <!-- Name val -->\n",
" </OneInterv_OT>\n",
" </GS_SectionOverlapingTraj>\n",
"\n",
"</Xml_ParamGraphStereopolis>\n",
"\n",
"<Verbatim File=\".h.cpp\">\n",
"// };\n",
"</Verbatim>\n",
Expand Down
45 changes: 45 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
FROM ubuntu:latest
MAINTAINER Ewelina Rupnik <[email protected]>

ARG DEBIAN_FRONTEND=noninteractive

# Set the working directory
ENV foo /etc/opt/
WORKDIR ${foo}

#IGN server specifique
#RUN export http_proxy="http://proxy.ign.fr:3128"
#RUN export https_proxy="https://proxy.ign.fr:3128"

#MicMac dependencies
RUN apt-get update && apt-get install -y \
build-essential \
make \
cmake \
git \
proj-bin \
exiv2 \
exiftool \
imagemagick \
xorg \
openbox \
qt5-default \
meshlab \
vim


#MicMac clone
#IGN-specific proxy setting
#RUN git config --global http.proxy http://proxy.ign.fr:3128
#RUN git config --global https.proxy https://proxy.ign.fr:3128
RUN git clone https://github.com/micmacIGN/micmac.git

#MicMac build & compile
WORKDIR micmac
RUN mkdir build
WORKDIR build
RUN cmake ../ && make install -j8

#MicMac add environmental variable to executables
ENV PATH=$foo"micmac/bin/:${PATH}"
RUN echo $foo"micmac/bin/:${PATH}"
1 change: 1 addition & 0 deletions MMVII/Doc/Doc2007.tex
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,7 @@ \part{Generalities}
\part{Methodologies}

\include{Methods/TiePoints}
\include{Methods/Vrac}



Expand Down
11 changes: 11 additions & 0 deletions MMVII/Doc/Methods/Vrac.tex
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@


\chapter{Several stuff unfinished}


%---------------------------------------------
%---------------------------------------------
%---------------------------------------------

%\section{Co-variance propagation}

10 changes: 8 additions & 2 deletions MMVII/bin/Mk-MMVII.makefile
Original file line number Diff line number Diff line change
Expand Up @@ -97,11 +97,15 @@ SrcCalcDescriptPCar=$(wildcard ${MMV2DirCalcDescriptPCar}*.cpp)
ObjCalcDescriptPCar=$(SrcCalcDescriptPCar:.cpp=.o)
#
#
MMV2DirMatchTieP=${MMV2DirSrc}MatchTieP/
SrcMatchTieP=$(wildcard ${MMV2DirMatchTieP}*.cpp)
ObjMatchTieP=$(SrcMatchTieP:.cpp=.o)
#
# => Le Main
MAIN=${MMV2DirSrc}main.cpp
#============ Calcul des objets
#
OBJ= ${ObjCalcDescriptPCar} ${ObjImagesBase} ${ObjMMV1} ${ObjUtiMaths} ${ObjImagesInfoExtract} ${ObjImagesFiltrLinear} ${ObjCmdSpec} ${ObjBench} ${ObjMatrix} ${ObjAppli} ${ObjDIB} ${ObjTLE} ${ObjMkf} ${ObjUtils} ${ObjSerial} ${ObjPerso}
OBJ= ${ObjMatchTieP} ${ObjCalcDescriptPCar} ${ObjImagesBase} ${ObjMMV1} ${ObjUtiMaths} ${ObjImagesInfoExtract} ${ObjImagesFiltrLinear} ${ObjCmdSpec} ${ObjBench} ${ObjMatrix} ${ObjAppli} ${ObjDIB} ${ObjTLE} ${ObjMkf} ${ObjUtils} ${ObjSerial} ${ObjPerso}
#
#========= Header ========
#
Expand All @@ -112,7 +116,7 @@ HEADER=$(wildcard ${MMV2DirIncl}*.h)
#== CFLAGS etc...
#
CXX=g++
CFlags="-std=c++14" "-Wall" "-Werror" "-O4" "-march=native" -I${MMV2Dir} -I${MMDir}/include/ -I${MMDir}
CFlags= "-std=c++14" "-Wall" "-Werror" "-O4" "-march=native" -I${MMV2Dir} -I${MMDir}/include/ -I${MMDir}
BOOST_LIBS= -lboost_system -lboost_serialization -lboost_regex -lboost_filesystem
QTAnnLibs= -lXext /usr/lib/x86_64-linux-gnu/libQt5Core.so /usr/lib/x86_64-linux-gnu/libQt5Gui.so /usr/lib/x86_64-linux-gnu/libQt5Xml.so /usr/lib/x86_64-linux-gnu/libQt5OpenGL.so -lGLU -lGL -ldl -lpthread /usr/lib/x86_64-linux-gnu/libQt5Xml.so /usr/lib/x86_64-linux-gnu/libQt5Concurrent.so /usr/lib/x86_64-linux-gnu/libQt5OpenGL.so /usr/lib/x86_64-linux-gnu/libQt5Widgets.so /usr/lib/x86_64-linux-gnu/libQt5Gui.so /usr/lib/x86_64-linux-gnu/libQt5Core.so ../../lib/libANN.a
LibsFlags= ${MMV2ElisePath} -lX11 ${BOOST_LIBS} ${QTAnnLibs}
Expand All @@ -132,6 +136,8 @@ ${MMV2ResultInstal} : ${MMV2SrcInstal}
#
# ================ Objects ==================
#
${MMV2DirMatchTieP}%.o : ${MMV2DirMatchTieP}%.cpp ${HEADER}
${CXX} -c $< ${CFlags} -o $@
${MMV2DirCalcDescriptPCar}%.o : ${MMV2DirCalcDescriptPCar}%.cpp ${HEADER}
${CXX} -c $< ${CFlags} -o $@
${MMV2DirPerso}%.o : ${MMV2DirPerso}%.cpp ${HEADER}
Expand Down
36 changes: 28 additions & 8 deletions MMVII/include/MMVII_AimeTieP.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ namespace MMVII
{
class cAimeDescriptor;
class cAimePCar;
class cSetAimePCAR;

/// Proto-class for Aime TieP

Expand Down Expand Up @@ -84,14 +85,24 @@ class cAimeDescriptor : public cMemCheck

const std::vector<double> & DirPrinc() const; ///< const accesor to main directions
std::vector<double> & DirPrinc() ; ///< non const accessor

/// this[x] / AD2[x+aShift]
double DistanceFromIShift(const cAimeDescriptor & aAD2,int aShift,const cSetAimePCAR & aSet) const;
// X1 and X2 are the peek, supposed to be homologous in
double DistanceFrom2RPeek(double aX1,const cAimeDescriptor & aAD2,double aX2,const cSetAimePCAR & aSet) const;
// IPeek is an index from DirPrinc
double DistanceFromStdPeek(int aIPeek,const cAimeDescriptor & aAD2,const cSetAimePCAR & aSet) const;
// Compute best match from all Dir Princ
cWhitchMin<int,double> DistanceFromBestPeek(const cAimeDescriptor & aAD2,const cSetAimePCAR & aSet) const;

private :
cIm2D<tU_INT1> mILP; ///< mImLogPol
cIm2D<tU_INT1> mILP; ///< mImLogPol
std::vector<double> mDirPrinc ; ///< Principal directions options
};

/** Class to store Aime Pts Car = Descriptor + localization
*/
class cAimePCar
class cAimePCar : public cMemCheck
{
public :
cAimeDescriptor & Desc();
Expand All @@ -103,21 +114,30 @@ class cAimePCar

/** Class to store aSet of AimePcar = vector<PC> + some common caracteritic on type
*/
class cSetAimePCAR
class cSetAimePCAR : public cMemCheck
{
public :
// cSetAimePCAR();
cSetAimePCAR(eTyPyrTieP aType,bool IsMax);
cSetAimePCAR(eTyPyrTieP aType,bool IsMax); ///< "Real" constructor
cSetAimePCAR(); ///< Sometime need a default constructor
int & IType();
eTyPyrTieP Type();
bool& IsMax();
bool& Census();
const bool& Census() const;
double& Ampl2N();
const double& Ampl2N() const;
std::vector<cAimePCar>& VPC();
void SaveInFile(const std::string &) const;
void InitFromFile(const std::string &) ;
// For census, as the value are strictly in [-1,1] we can use a universall value for normalize
static const double TheCensusMult;
private :
int mType; ///< Type registered as int, easier for AddData, in fact a eTyPyrTieP
bool mIsMax; ///< Is it a maxima or a minima of its caracteristic
std::vector<cAimePCar> mVPC; ///< Vector of Aime points

int mType; ///< Type registered as int, easier for AddData, in fact a eTyPyrTieP
bool mIsMax; ///< Is it a maxima or a minima of its caracteristic
std::vector<cAimePCar> mVPC; ///< Vector of Aime points
bool mCensus; ///< Is it Census mode
double mAmpl2N; ///< Ampl between the normalized value IPL = Norm*Ampl
};


Expand Down
4 changes: 4 additions & 0 deletions MMVII/include/MMVII_Bench.h
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,10 @@ void BenchStat();
void BenchUnbiasedStdDev(); ///< Test one specific function currently not correct, by default test not activated
void BenchSupport(); ///< Test support function that could/should exist in standard libs

void BenchMyJets(); ///< Test on Jets, correctness and efficience
void BenchJetsCam(); ///< Test specifique to camera projection
void MMV1_GenerateCodeTestCam(); ///< To generate code of derivative MMV1-like (for comparing with jets)


};

Expand Down
2 changes: 2 additions & 0 deletions MMVII/include/MMVII_DeclareAllCmd.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,12 +17,14 @@ extern cSpecMMVII_Appli TheSpecEditSet;
extern cSpecMMVII_Appli TheSpecEditRel;
extern cSpecMMVII_Appli TheSpecWalkman;
extern cSpecMMVII_Appli TheSpecDaisy;
extern cSpecMMVII_Appli TheSpecCatVideo;
extern cSpecMMVII_Appli TheSpec_TestEigen;
extern cSpecMMVII_Appli TheSpec_ComputeParamIndexBinaire;
extern cSpecMMVII_Appli TheSpecTestRecall;
extern cSpecMMVII_Appli TheSpecScaleImage;
extern cSpecMMVII_Appli TheSpecCalcDiscIm;
extern cSpecMMVII_Appli TheSpecCalcDescPCar;
extern cSpecMMVII_Appli TheSpecMatchTieP;

};

Expand Down
Loading

0 comments on commit aeac108

Please sign in to comment.