int XeresCalibMain_main(int argc,char** argv) { MMD_InitArgcArgv(argc,argv); std::string aSeq,aDir,OutCal="Calib"; int aSz=1500; ElInitArgMain ( argc,argv, LArgMain() // << EAMC(aSeq, "Sequence") << EAMC(aDir, "Directory"), LArgMain() << EAM(aSeq,"Seq",true,"Folder of data, Def=./") << EAM(aSz,"Sz",true,"Sz of TieP, Def=1500") << EAM(OutCal,"Out",true,"") ); // std::string aCdDir = "cd " + aDir + "/"; // System(aCdDir); if (!EAMIsInit(&aSeq) ) aSeq = aDir; cElemAppliSetFile anEASF(aDir+"/.*jpg"); const std::vector<std::string> * aVS = anEASF.SetIm(); int aNbIm = aVS->size(); for (int aK=0 ; aK<aNbIm ; aK++) { const std::string & aName = (*aVS)[aK]; ELISE_fp::MvFile(aDir+"/"+aName,aDir+"/"+aSeq+"_Calib" +ToString(aK) + ".jpg"); std::cout << "NAME = " << aName << "\n"; } std::string aStrMMD= "MicMac-LocalChantierDescripteur.xml"; ELISE_fp::CpFile(aStrMMD,aDir+"/"+aStrMMD); std::string aComTiep = MM3dBinFile_quotes("Tapioca") + " All " + aDir + "/.*jpg " + ToString(aSz); System(aComTiep); std::string aComOri = MM3dBinFile_quotes("Tapas ") + " FraserBasic " + aDir + "/.*jpg " + " Out=" + OutCal + " RankInitPP=0 RankInitF=1 RefineAll=0"; System(aComOri); return EXIT_SUCCESS; }
int AllReechHom_main(int argc,char ** argv) { std::string aFullName1,aPat,aPref,aPostMasq = "Masq"; ElInitArgMain ( argc,argv, LArgMain() << EAMC(aFullName1,"Name of \"Master\" Image", eSAM_IsExistFile) << EAMC(aPat,"Name of all \"Slaves\" Image", eSAM_IsExistFile) << EAMC(aPref,"Name of Prefix for registered Images", eSAM_IsExistFile), LArgMain() << EAM(aPostMasq,"PostMasq",true,"Name of Masq , Def = \"Masq\"") ); cElemAppliSetFile anEASF(aPat); const cInterfChantierNameManipulateur::tSet * aSet = anEASF.SetIm(); std::string aName1 = NameWithoutDir(aFullName1); std::list<std::string> aLCom; for (int aK=0 ; aK<int(aSet->size()) ; aK++) { std::string aName2 = (*aSet)[aK]; if (aName1 != aName2) { std::string aNameRes = anEASF.mDir + aPref +aName2 + ".tif"; if (! ELISE_fp::exist_file(aNameRes)) { // std::cout << "RES = " << aNameRes << "\n"; std::string aCom = MM3dBinFile_quotes("TestLib") + " OneReechHom " + aFullName1 + " " + anEASF.mDir + aName2 + " " + aNameRes + " PostMasq=" + aPostMasq; aLCom.push_back(aCom); // std::cout << "COM= " << aCom << "\n"; } } } cEl_GPAO::DoComInParal(aLCom); return EXIT_SUCCESS; }
int PreGenerateDuTriplet(int argc,char ** argv,const std::string & aComIm) { MMD_InitArgcArgv(argc,argv); std::string aFullName,anOriCalib; bool aQuick; ElInitArgMain ( argc,argv, LArgMain() << EAMC(aFullName,"Name of Image"), LArgMain() << EAM(anOriCalib,"OriCalib",true,"Calibration directory ") << EAM(aQuick,"Quick",true,"Quick version") ); cElemAppliSetFile anEASF(aFullName); if (!EAMIsInit(&anOriCalib)) { MakeXmlXifInfo(aFullName,anEASF.mICNM); } cNewO_NameManager aNM(aQuick,anEASF.mDir,anOriCalib,"dat"); aNM.Dir3P(true); const cInterfChantierNameManipulateur::tSet * aSetIm = anEASF.SetIm(); std::list<std::string> aLCom; for (int aKIm=0 ; aKIm<int(aSetIm->size()) ; aKIm++) { std::string aCom = MM3dBinFile_quotes( "TestLib ") + aComIm + " " + anEASF.mDir+(*aSetIm)[aKIm] ; if (EAMIsInit(&anOriCalib)) aCom = aCom + " OriCalib=" + anOriCalib; aCom += " Quick=" +ToString(aQuick); aLCom.push_back(aCom); //std::cout << aCom << "\n"; } cEl_GPAO::DoComInParal(aLCom); return EXIT_SUCCESS; }
int CPP_AllOptimTriplet_main(int argc,char ** argv) { ElTimer aChrono; std::string aFullPat,aNameCalib; bool inParal=true; bool Quick = false; std::string aPrefHom=""; bool Debug = false; ElInitArgMain ( argc,argv, LArgMain() << EAMC(aFullPat,"Pattern"), LArgMain() << EAM(aNameCalib,"OriCalib",true,"Orientation for calibration ", eSAM_IsExistDirOri) << EAM(inParal,"Paral",true,"Execute in parallel ", eSAM_IsBool) << EAM(Quick,"Quick",true,"Quick version", eSAM_IsBool) << EAM(aPrefHom,"PrefHom",true,"Prefix Homologous points, def=\"\"") << EAM(Debug,"Debug",true,"Debugging mode (tuning purpose)", eSAM_IsBool) ); cElemAppliSetFile anEASF(aFullPat); const cInterfChantierNameManipulateur::tSet * aVIm = anEASF.SetIm(); cSetName * aSetN= anEASF.mICNM->KeyOrPatSelector(aFullPat); std::set<std::string> aSetName(aVIm->begin(),aVIm->end()); std::string aDir = anEASF.mDir; cNewO_NameManager * aNM = new cNewO_NameManager(aPrefHom,Quick,aDir,aNameCalib,"dat"); cSauvegardeNamedRel aLCpl = StdGetFromPCP(aNM->NameCpleOfTopoTriplet(true),SauvegardeNamedRel); std::list<std::string> aLCom; int aNb= 0 ; int aNb2 = (int)aLCpl.Cple().size(); for (std::vector<cCpleString>::const_iterator itC=aLCpl.Cple().begin() ; itC!=aLCpl.Cple().end() ; itC++) { aNb++; const std::string & aN1 = itC->N1(); const std::string & aN2 = itC->N2(); if (aSetN->SetBasicIsIn(aN1) && aSetN->SetBasicIsIn(aN2)) { std::string aCom = MM3dBinFile("TestLib NO_OneImOptTrip") + " " + aN1 + " " + aN2 + " " + cAppliOptimTriplet::KeyCple; if (EAMIsInit(&aNameCalib)) aCom += " OriCalib=" + aNameCalib; aCom += " Quick=" + ToString(Quick); aCom += " PrefHom=" + aPrefHom; if (inParal) { aLCom.push_back(aCom); if ((aNb%40) == 0) { cEl_GPAO::DoComInParal(aLCom); aLCom.clear(); std::cout << "Optim triplets Done " << aNb << " pairs out of " << aNb2 << " in " << aChrono.uval() << "\n"; } } else { std::cout << "COM " << aCom << "\n"; System(aCom); } } } cEl_GPAO::DoComInParal(aLCom); return EXIT_SUCCESS; }
int HomFusionPDVUnik_main(int argc,char ** argv) { MMD_InitArgcArgv(argc,argv); std::string aDir,aPat,aFullDir; std::string aPostIn= ""; std::string aPostOut= "MasqFusion"; bool ExpTxt=false; std::string aDir2; std::vector<std::string > aDirN; ElInitArgMain ( argc,argv, LArgMain() << EAMC(aFullDir,"Full name (Dir+Pat)", eSAM_IsPatFile) << EAMC(aDir2,"Dir of external point", eSAM_IsPatFile), LArgMain() << EAM(aPostIn,"PostIn",true,"Post for Input dir Hom, Def=") << EAM(aPostOut,"PostOut",true,"Post for Output dir Hom, Def=MasqFusion") << EAM(ExpTxt,"ExpTxt",true,"Ascii format for in and out, def=false") << EAM(aDirN,"DirN",true,"Supplementary dirs 2 merge") ); #if (ELISE_windows) replace( aFullDir.begin(), aFullDir.end(), '\\', '/' ); #endif cElemAppliSetFile anEASF(aFullDir); cInterfChantierNameManipulateur * anICNM = anEASF.mICNM; const std::vector<std::string> * aVN = anEASF.SetIm(); std::string anExt = ExpTxt ? "txt" : "dat"; std::string aKHIn = std::string("NKS-Assoc-CplIm2Hom@") + std::string(aPostIn) + std::string("@") + std::string(anExt); std::string aKHOut = std::string("NKS-Assoc-CplIm2Hom@") + std::string(aPostOut) + std::string("@") + std::string(anExt); aDirN.push_back(aDir); aDirN.push_back(aDir2); for (int aKN1 = 0 ; aKN1<int(aVN->size()) ; aKN1++) { for (int aKN2 = 0 ; aKN2<int(aVN->size()) ; aKN2++) { std::string aNameIm1 = (*aVN)[aKN1]; std::string aNameIm2 = (*aVN)[aKN2]; std::string aNameLocIn = aDir + anICNM->Assoc1To2(aKHIn,aNameIm1,aNameIm2,true); ElPackHomologue aPackOut; int aNbH=0; for (int aKP=0 ; aKP<int(aDirN.size()) ; aKP++) { std::string aNameIn= aDirN[aKP] + aNameLocIn; if (ELISE_fp::exist_file(aNameIn)) { ElPackHomologue aPackIn = ElPackHomologue::FromFile(aNameIn); aNbH++; for (ElPackHomologue::const_iterator itP=aPackIn.begin() ; itP!=aPackIn.end() ; itP++) { aPackOut.Cple_Add(itP->ToCple()); } } } if (aPackOut.size() !=0) { std::string aNameOut = aDir + anICNM->Assoc1To2(aKHOut,aNameIm1,aNameIm2,true); aPackOut.StdPutInFile(aNameOut); if (0) std::cout << "aNbH " << aNbH << "\n"; } } } return EXIT_SUCCESS; }