+
+ if (file.isEmpty())
+ return;
+
+ QFile Qfile1(file);
+ mConfigFile= file.toStdString();
+ CmdlineParser(1, 1);//1,1 - override, initialize
+ cb_transform->setCurrentIndex(mArgsInfo.transform_arg);
+ cb_interpolator->setCurrentIndex(mArgsInfo.interp_arg);
+ cb_optimizer->setCurrentIndex(mArgsInfo.optimizer_arg);
+ cb_metric->setCurrentIndex(mArgsInfo.metric_arg);
+}
+//------------------------------------------------------------------------------
+
+//------------------------------------------------------------------------------
+void vvToolRigidReg::Presets()
+{
+ mConfigFile="Presets";
+ std::string matrixfilename;
+if(cb_presets->currentIndex()==0)
+{
+ mArgsInfo.reference_arg=new char;
+ mArgsInfo.reference_given=0;
+ mArgsInfo.target_arg=new char;
+ mArgsInfo.target_given=0;
+ mArgsInfo.output_arg=new char;
+ mArgsInfo.referenceMask_arg=new char;
+ mArgsInfo.targetMask_arg=new char;
+ mArgsInfo.initMatrix_arg=new char;
+ mArgsInfo.matrix_arg=new char;
+ mArgsInfo.referenceMask_given=0;
+ mArgsInfo.reference_given=0;
+ mArgsInfo.reference_arg=new char;
+ mArgsInfo.target_given=0;
+ mArgsInfo.target_arg=new char;
+ mArgsInfo.output_given=0;
+ mArgsInfo.output_arg=new char;
+ mArgsInfo.checker_after_given=0;
+ mArgsInfo.checker_before_given=0;
+ mArgsInfo.after_given=0;
+ mArgsInfo.before_given=0;
+ mArgsInfo.threads_given=1;
+ mArgsInfo.threads_arg=3;
+ mArgsInfo.normalize_flag=0;
+ mArgsInfo.blur_arg=0.0;
+ mArgsInfo.referenceMask_arg=new char;
+ mArgsInfo.targetMask_arg=new char;
+ mArgsInfo.targetMask_given=0;
+ mArgsInfo.levels_given=1;
+ mArgsInfo.levels_arg=2;
+ mArgsInfo.moment_flag=1;
+ mArgsInfo.intThreshold_given=0;
+ mArgsInfo.intThreshold_arg=0.0;
+ mArgsInfo.transX_arg=0.0;
+ mArgsInfo.transY_arg=0.0;
+ mArgsInfo.transZ_arg=0.0;
+ mArgsInfo.transform_arg=2;
+ mArgsInfo.gradient_flag=1;
+ mArgsInfo.interp_given=1;
+ mArgsInfo.interp_arg=1;
+ mArgsInfo.interpOrder_given=1;
+ mArgsInfo.interpOrder_arg=3;
+ mArgsInfo.interpSF_given=1;
+ mArgsInfo.interpSF_arg=20;//default
+ mArgsInfo.metric_given=1;
+ mArgsInfo.metric_arg=0;
+ mArgsInfo.samples_arg=1;//default
+ mArgsInfo.stdDev_arg=0.4;
+ mArgsInfo.step_arg=2.0;
+ mArgsInfo.relax_arg=0.7;
+ mArgsInfo.valueTol_arg=0.01;
+ mArgsInfo.stepTol_arg=0.1;
+ mArgsInfo.gradTol_arg=1e-5;
+ mArgsInfo.lineAcc_arg=0.9;
+ mArgsInfo.convFactor_arg=1e+12;
+ mArgsInfo.maxIt_arg=500;
+ mArgsInfo.maxLineIt_arg=50;
+ mArgsInfo.maxEval_arg=500;
+ mArgsInfo.maxCorr_arg=5;
+ mArgsInfo.selectBound_arg=0;
+ mArgsInfo.inc_arg=1.2;
+ mArgsInfo.dec_arg=4;
+ mArgsInfo.optimizer_arg=1;
+ mArgsInfo.initMatrix_given=0;
+ mArgsInfo.initMatrix_arg=new char;
+ mArgsInfo.tWeight_given=1;
+ mArgsInfo.tWeight_arg=1.0;
+ mArgsInfo.rWeight_given=1.0;
+ mArgsInfo.rWeight_arg=50.0;
+ mArgsInfo.matrix_given=1;
+ matrixfilename="/home/bharath/bin/writematrix.txt";//put ur path here for retreiving your matrix
+ mArgsInfo.matrix_arg=const_cast<char*>(matrixfilename.c_str());
+ UpdateTextEditor2();
+}
+else {
+ QMessageBox::information(this,"Sorry", "Other Presets are not available for the moment!");
+ return;
+ }
+}
+//------------------------------------------------------------------------------
+
+//------------------------------------------------------------------------------
+void vvToolRigidReg::UpdateTextEditor2()
+{
+
+ QString str1,str2,str3;
+ QColor color;
+ tab2textedit->clear();
+ tab2textedit->setAcceptRichText(true);
+ str2=tab2textedit->toPlainText();
+ tab2textedit->setTextColor(QColor(255,0,0));
+ str2.append(str3.append("threads="+str1.setNum(mArgsInfo.threads_arg)));
+ tab2textedit->setText(str2);
+ str3.clear();
+ str1.clear();
+
+ str2=tab2textedit->toPlainText();
+ str2.append("\n");
+ tab2textedit->setText(str2);
+
+ str2=tab2textedit->toPlainText();
+ str2.append(str3.append("reference="+str1.append(mArgsInfo.reference_arg)));
+ tab2textedit->setText(str2);
+ str3.clear();
+ str1.clear();
+
+ str2=tab2textedit->toPlainText();
+ str2.append("\n");
+ tab2textedit->setText(str2);
+
+ str2=tab2textedit->toPlainText();
+ str2.append(str3.append("target="+str1.append(mArgsInfo.target_arg)));
+ tab2textedit->setText(str2);
+ str3.clear();
+ str1.clear();
+
+ str2=tab2textedit->toPlainText();
+ str2.append("\n");
+ tab2textedit->setText(str2);
+
+ str2=tab2textedit->toPlainText();
+ str2.append(str3.append("matrix="+str1.append(mArgsInfo.matrix_arg)));
+ tab2textedit->setText(str2);
+ str3.clear();
+ str1.clear();
+
+ str2=tab2textedit->toPlainText();
+ str2.append("\n");
+ tab2textedit->setText(str2);
+
+ str2=tab2textedit->toPlainText();
+ str2.append(str3.append("interp="+str1.setNum(mArgsInfo.interp_arg)));
+ tab2textedit->setText(str2);
+ str3.clear();
+ str1.clear();
+
+ str2=tab2textedit->toPlainText();
+ str2.append("\n");
+ tab2textedit->setText(str2);
+
+ str2=tab2textedit->toPlainText();
+ str2.append(str3.append("transform="+str1.setNum(mArgsInfo.transform_arg)));
+ tab2textedit->setText(str2);
+ str3.clear();
+ str1.clear();
+
+ str2=tab2textedit->toPlainText();
+ str2.append("\n");
+ tab2textedit->setText(str2);
+
+ str2=tab2textedit->toPlainText();
+ str2.append(str3.append("transX="+str1.setNum(mArgsInfo.transX_arg)));
+ tab2textedit->setText(str2);
+ str3.clear();
+ str1.clear();
+
+ str2=tab2textedit->toPlainText();
+ str2.append("\n");
+ tab2textedit->setText(str2);
+
+ str2=tab2textedit->toPlainText();
+ str2.append(str3.append("transY="+str1.setNum(mArgsInfo.transY_arg)));
+ tab2textedit->setText(str2);
+ str3.clear();
+ str1.clear();
+
+ str2=tab2textedit->toPlainText();
+ str2.append("\n");
+ tab2textedit->setText(str2);
+
+ str2=tab2textedit->toPlainText();
+ str2.append(str3.append("transZ="+str1.setNum(mArgsInfo.transZ_arg)));
+ tab2textedit->setText(str2);
+ str3.clear();
+ str1.clear();
+
+ str2=tab2textedit->toPlainText();
+ str2.append("\n");
+ tab2textedit->setText(str2);
+
+ str2=tab2textedit->toPlainText();
+ str2.append(str3.append("metric="+str1.setNum(mArgsInfo.metric_arg)));
+ tab2textedit->setText(str2);
+ str3.clear();
+ str1.clear();
+
+ str2=tab2textedit->toPlainText();
+ str2.append("\n");
+ tab2textedit->setText(str2);
+
+ str2=tab2textedit->toPlainText();
+ str2.append(str3.append("samples="+str1.setNum(mArgsInfo.samples_arg)));
+ tab2textedit->setText(str2);
+ str3.clear();
+ str1.clear();
+
+ str2=tab2textedit->toPlainText();
+ str2.append("\n");
+ tab2textedit->setText(str2);
+
+ str2=tab2textedit->toPlainText();
+ str2.append(str3.append("intThreshold="+str1.setNum(mArgsInfo.intThreshold_arg)));
+ tab2textedit->setText(str2);
+ str3.clear();
+ str1.clear();
+
+ str2=tab2textedit->toPlainText();
+ str2.append("\n");
+ tab2textedit->setText(str2);
+
+ str2=tab2textedit->toPlainText();
+ str2.append(str3.append("stdDev="+str1.setNum(mArgsInfo.stdDev_arg)));
+ tab2textedit->setText(str2);
+ str3.clear();
+ str1.clear();
+
+ str2=tab2textedit->toPlainText();
+ str2.append("\n");
+ tab2textedit->setText(str2);
+
+
+ str2=tab2textedit->toPlainText();
+ str2.append(str3.append("blur="+str1.setNum(mArgsInfo.blur_arg)));
+ tab2textedit->setText(str2);
+ str3.clear();
+ str1.clear();
+
+ str2=tab2textedit->toPlainText();
+ str2.append("\n");
+ tab2textedit->setText(str2);
+
+
+ str2=tab2textedit->toPlainText();
+ str2.append(str3.append("optimizer="+str1.setNum(mArgsInfo.optimizer_arg)));
+ tab2textedit->setText(str2);
+ str3.clear();
+ str1.clear();
+
+ str2=tab2textedit->toPlainText();
+ str2.append("\n");
+ tab2textedit->setText(str2);
+
+
+ str2=tab2textedit->toPlainText();
+ str2.append(str3.append("step="+str1.setNum(mArgsInfo.step_arg)));
+ tab2textedit->setText(str2);
+ str3.clear();
+ str1.clear();
+
+ str2=tab2textedit->toPlainText();
+ str2.append("\n");
+ tab2textedit->setText(str2);
+
+
+ str2=tab2textedit->toPlainText();
+ str2.append(str3.append("relax="+str1.setNum(mArgsInfo.relax_arg)));
+ tab2textedit->setText(str2);
+ str3.clear();
+ str1.clear();
+
+ str2=tab2textedit->toPlainText();
+ str2.append("\n");
+ tab2textedit->setText(str2);
+
+ str2=tab2textedit->toPlainText();
+ str2.append(str3.append("valueTol="+str1.setNum(mArgsInfo.valueTol_arg)));
+ tab2textedit->setText(str2);
+ str3.clear();
+ str1.clear();
+
+ str2=tab2textedit->toPlainText();
+ str2.append("\n");
+ tab2textedit->setText(str2);
+
+ str2=tab2textedit->toPlainText();
+ str2.append(str3.append("stepTol="+str1.setNum(mArgsInfo.stepTol_arg)));
+ tab2textedit->setText(str2);
+ str3.clear();
+ str1.clear();
+
+ str2=tab2textedit->toPlainText();
+ str2.append("\n");
+ tab2textedit->setText(str2);
+
+
+ str2=tab2textedit->toPlainText();
+ str2.append(str3.append("gradTol="+str1.setNum(mArgsInfo.gradTol_arg)));
+ tab2textedit->setText(str2);
+ str3.clear();
+ str1.clear();
+
+ str2=tab2textedit->toPlainText();
+ str2.append("\n");
+ tab2textedit->setText(str2);
+
+ str2=tab2textedit->toPlainText();
+ str2.append(str3.append("lineAcc="+str1.setNum(mArgsInfo.lineAcc_arg)));
+ tab2textedit->setText(str2);
+ str3.clear();
+ str1.clear();
+
+ str2=tab2textedit->toPlainText();
+ str2.append("\n");
+ tab2textedit->setText(str2);
+ str2=tab2textedit->toPlainText();
+ str2.append(str3.append("convFactor="+str1.setNum(mArgsInfo.convFactor_arg)));
+ tab2textedit->setText(str2);
+ str3.clear();
+ str1.clear();
+
+ str2=tab2textedit->toPlainText();
+ str2.append("\n");
+ tab2textedit->setText(str2);
+
+ str2=tab2textedit->toPlainText();
+ str2.append(str3.append("maxIt="+str1.setNum(mArgsInfo.maxIt_arg)));
+ tab2textedit->setText(str2);
+ str3.clear();
+ str1.clear();
+
+ str2=tab2textedit->toPlainText();
+ str2.append("\n");
+ tab2textedit->setText(str2);
+
+ str2=tab2textedit->toPlainText();
+ str2.append(str3.append("maxLineIt="+str1.setNum(mArgsInfo.maxLineIt_arg)));
+ tab2textedit->setText(str2);
+ str3.clear();
+ str1.clear();
+
+ str2=tab2textedit->toPlainText();
+ str2.append("\n");
+ tab2textedit->setText(str2);
+
+ str2=tab2textedit->toPlainText();
+ str2.append(str3.append("maxEval="+str1.setNum(mArgsInfo.maxEval_arg)));
+ tab2textedit->setText(str2);
+ str3.clear();
+ str1.clear();
+
+ str2=tab2textedit->toPlainText();
+ str2.append("\n");
+ tab2textedit->setText(str2);
+
+ str2=tab2textedit->toPlainText();
+ str2.append(str3.append("maxCorr="+str1.setNum(mArgsInfo.maxCorr_arg)));
+ tab2textedit->setText(str2);
+ str3.clear();
+ str1.clear();
+
+ str2=tab2textedit->toPlainText();
+ str2.append("\n");
+ tab2textedit->setText(str2);
+
+ str2=tab2textedit->toPlainText();
+ str2.append(str3.append("selectBound="+str1.setNum(mArgsInfo.selectBound_arg)));
+ tab2textedit->setText(str2);
+ str3.clear();
+ str1.clear();
+
+ str2=tab2textedit->toPlainText();
+ str2.append("\n");
+ tab2textedit->setText(str2);
+
+ str2=tab2textedit->toPlainText();
+ str2.append(str3.append("rWeight="+str1.setNum(mArgsInfo.rWeight_arg)));
+ tab2textedit->setText(str2);
+ str3.clear();
+ str1.clear();
+
+ str2=tab2textedit->toPlainText();
+ str2.append("\n");
+ tab2textedit->setText(str2);
+
+ str2=tab2textedit->toPlainText();
+ str2.append(str3.append("tWeight="+str1.setNum(mArgsInfo.tWeight_arg)));
+ tab2textedit->setText(str2);
+ str3.clear();
+ str1.clear();
+
+ str2=tab2textedit->toPlainText();
+ str2.append("\n");
+ tab2textedit->setText(str2);
+
+ str2=tab2textedit->toPlainText();
+ str2.append(str3.append("levels="+str1.setNum(mArgsInfo.levels_arg)));
+ tab2textedit->setText(str2);
+ str3.clear();
+ str1.clear();
+
+ str2=tab2textedit->toPlainText();
+ str2.append("\n");
+ tab2textedit->setText(str2);
+
+ str2=tab2textedit->toPlainText();
+ str2.append(str3.append("inc="+str1.setNum(mArgsInfo.inc_arg)));
+ tab2textedit->setText(str2);
+ str3.clear();
+ str1.clear();
+
+ str2=tab2textedit->toPlainText();
+ str2.append("\n");
+ tab2textedit->setText(str2);
+
+ str2=tab2textedit->toPlainText();
+ str2.append(str3.append("dec="+str1.setNum(mArgsInfo.dec_arg)));
+ tab2textedit->setText(str2);
+ str3.clear();
+ str1.clear();
+
+ str2=tab2textedit->toPlainText();
+ str2.append("\n");
+ tab2textedit->setText(str2);
+}
+//------------------------------------------------------------------------------
+
+//------------------------------------------------------------------------------
+void vvToolRigidReg::TransformSelect()
+{
+ if(!mConfigFile.empty()){
+ mArgsInfo.transform_arg=cb_transform->currentIndex();
+ UpdateTextEditor2();
+ }
+ else{
+ QMessageBox::information(this,"Warning","Load the Config File First!..");
+ }
+}
+//------------------------------------------------------------------------------
+
+//------------------------------------------------------------------------------
+void vvToolRigidReg::CmdlineParser(int override, int initialize)
+{
+ //0 opened, 1 not opened fine
+ int opened=cmdline_parser_clitkAffineRegistration_configfile(const_cast<char*>(mConfigFile.c_str()),&mArgsInfo,override,initialize,1);
+ DD(opened);