@@ -17,17 +17,19 @@ class cAppli_MMV2_MesIm_2_MMV1 : public cMMVII_Appli
1717 cCollecSpecArg2007 & ArgObl (cCollecSpecArg2007 & anArgObl) override ;
1818 cCollecSpecArg2007 & ArgOpt (cCollecSpecArg2007 & anArgOpt) override ;
1919
20- cPhotogrammetricProject mPhProj ;
21- std::string mSpecImIn ;
22- std::string mNameFile ;
23- bool mShow ;
20+ cPhotogrammetricProject mPhProj ;
21+ std::string mSpecImIn ;
22+ std::string mNameFile ;
23+ bool mShow ;
24+ bool mFiltNONE ;
2425
2526};
2627
2728cAppli_MMV2_MesIm_2_MMV1::cAppli_MMV2_MesIm_2_MMV1 (const std::vector<std::string> & aVArgs,const cSpecMMVII_Appli & aSpec) :
28- cMMVII_Appli (aVArgs,aSpec),
29- mPhProj (*this ),
30- mShow (false )
29+ cMMVII_Appli (aVArgs,aSpec),
30+ mPhProj (*this ),
31+ mShow (false ),
32+ mFiltNONE (true )
3133
3234{
3335}
@@ -46,6 +48,7 @@ cCollecSpecArg2007 & cAppli_MMV2_MesIm_2_MMV1::ArgOpt(cCollecSpecArg2007 & anArg
4648{
4749 return anArgOpt
4850 << AOpt2007 (mShow ," ShowD" ," Show details" ,{eTA2007::HDV})
51+ << AOpt2007 (mFiltNONE ," FiltNONE" ," Do not export points with name starting with NONE" ,{eTA2007::HDV})
4952 ;
5053}
5154
@@ -57,66 +60,64 @@ int cAppli_MMV2_MesIm_2_MMV1::Exe()
5760 std::vector<std::string> aVecIm = VectMainSet (0 );// interface to MainSet
5861
5962#if (MMVII_KEEP_LIBRARY_MMV1)
63+
6064 // MicMac v1
6165 cSetOfMesureAppuisFlottants aDico;
6266
67+
6368 for (const std::string& aCImage : aVecIm)
6469 {
65-
66- cSetMesGndPt aSetMes;
67-
68- // load GCPs
69- // mPhProj.LoadGCP3D(aSetMes);
70-
71- // load image measurements
72- mPhProj .LoadIm (aSetMes,aCImage);
73-
74- // image measurements to export
75- cSetMesPtOf1Im aSetMesOut (FileOfPath (aCImage));
76-
77- // MicMac v1
78- cMesureAppuiFlottant1Im aMAF;
79-
80- for (const auto & aVMes : aSetMes.MesImInit ())
81- {
82- std::string aNameImage = aVMes.NameIm ();
83- std::vector<cMesIm1Pt> aVMesIm = aVMes.Measures ();
84-
85- // MicMac v1
86- aMAF.NameIm () = aNameImage;
87-
88- for (const auto & aMes : aVMes.Measures ())
89- {
90- std::string aGcpName = aMes.mNamePt ;
91- cPt2dr aPtIm = aMes.mPt ;
92-
93- // MicMac v1
94- cOneMesureAF1I aOAF1I;
95- Pt2dr aPt;
96- aPt.x = aPtIm.x ();
97- aPt.y = aPtIm.y ();
98- aOAF1I.NamePt () = aGcpName;
99- aOAF1I.PtIm () = aPt;
100-
101- if (mShow )
102- {
103- std::cout << aNameImage << " ," << aGcpName << " ," << aPtIm.x () << " ," << aPtIm.y () << std::endl;
104- }
105-
106- // add to the dico
107- aMAF.OneMesureAF1I ().push_back (aOAF1I);
108-
109- }
110-
111-
112- }
113-
114- // append to the dico
115- aDico.MesureAppuiFlottant1Im ().push_back (aMAF);
116- }
117-
118- // write image measure in MicMac v1 .xml format
119- MakeFileXML (aDico,mNameFile );
70+ // std::string aNameImage = aCImage;
71+
72+ if (mPhProj .HasMeasureIm (aCImage))
73+ {
74+ // MicMac v1
75+ cMesureAppuiFlottant1Im aMAF;
76+ aMAF.NameIm () = aCImage;
77+
78+ // retreive set of measure in an image
79+ cSetMesPtOf1Im aSet = mPhProj .LoadMeasureIm (aCImage);
80+
81+ if (mShow )
82+ {
83+ std::cout << " Image: " << aCImage
84+ << " \t #Nb Img Measure: " << aSet.Measures ().size ()
85+ << std::endl;
86+ }
87+
88+ // retreive vector of measure of a point in an image
89+ for (const auto & aMes : aSet.Measures ())
90+ {
91+ std::string aGcpName = aMes.mNamePt ;
92+ if (!(mFiltNONE && (aGcpName.substr (0 , 4 ) == " NONE" )))
93+ {
94+ cPt2dr aPtIm = aMes.mPt ;
95+
96+ // MicMac v1
97+ cOneMesureAF1I aOAF1I;
98+ Pt2dr aPt;
99+ aPt.x = aPtIm.x ();
100+ aPt.y = aPtIm.y ();
101+ aOAF1I.NamePt () = aGcpName;
102+ aOAF1I.PtIm () = aPt;
103+
104+ if (mShow )
105+ {
106+ std::cout << aMAF.NameIm () << " ," << aGcpName << " ," << aPtIm.x () << " ," << aPtIm.y () << std::endl;
107+ }
108+
109+ // add to the dico
110+ aMAF.OneMesureAF1I ().push_back (aOAF1I);
111+ }
112+ }
113+
114+ // append to the dico
115+ aDico.MesureAppuiFlottant1Im ().push_back (aMAF);
116+ }
117+ }
118+
119+ // write image measure in MicMac v1 .xml format
120+ MakeFileXML (aDico,mNameFile );
120121#else // (MMVII_KEEP_LIBRARY_MMV1)
121122 StdOut () << " \n\n " ;
122123 StdOut () << " ********************************************************************************************************\n " ;
0 commit comments