Commit 23f3062ccce570390175d14d55001d4e63cf17e1

Authored by dgcrouse
1 parent 986207ab

Replaced execCommand with QProcess::execute()

Showing 1 changed file with 46 additions and 58 deletions
openbr/plugins/cascade.cpp
@@ -87,83 +87,71 @@ struct TrainParams @@ -87,83 +87,71 @@ struct TrainParams
87 } 87 }
88 }; 88 };
89 89
90 -QString buildTrainingArgs(const TrainParams params) 90 +QStringList buildTrainingArgs(const TrainParams params)
91 { 91 {
92 - QString args = "";  
93 - if (params.data != "") args += "-data " + params.data + " "; 92 + QStringList args;
  93 + if (params.data != "") args.append("-data " + params.data + " ");
94 else qFatal("Must specify storage location for cascade"); 94 else qFatal("Must specify storage location for cascade");
95 - if (params.vec != "") args += "-vec " + params.vec + " "; 95 + if (params.vec != "") args.append("-vec " + params.vec + " ");
96 else qFatal("Must specify location of positive vector"); 96 else qFatal("Must specify location of positive vector");
97 - if (params.bg != "") args += "-bg " + params.bg + " "; 97 + if (params.bg != "") args.append("-bg " + params.bg + " ");
98 else qFatal("Must specify negative images"); 98 else qFatal("Must specify negative images");
99 - if (params.numPos >= 0) args += "-numPos " + QString::number(params.numPos) + " ";  
100 - if (params.numNeg >= 0) args += "-numNeg " + QString::number(params.numNeg) + " ";  
101 - if (params.numStages >= 0) args += "-numStages " + QString::number(params.numStages) + " ";  
102 - if (params.precalcValBufSize >= 0) args += "-precalcValBufSize " + QString::number(params.precalcValBufSize) + " ";  
103 - if (params.precalcIdxBufSize >= 0) args += "-precalcIdxBufSize " + QString::number(params.precalcIdxBufSize) + " ";  
104 - if (params.baseFormatSave) args += "-baseFormatSave ";  
105 - if (params.stageType != "") args += "-stageType " + params.stageType + " ";  
106 - if (params.featureType != "") args += "-featureType " + params.featureType + " ";  
107 - if (params.w >= 0) args += "-w " + QString::number(params.w) + " "; 99 + if (params.numPos >= 0) args.append("-numPos " + QString::number(params.numPos) + " ");
  100 + if (params.numNeg >= 0) args.append("-numNeg " + QString::number(params.numNeg) + " ");
  101 + if (params.numStages >= 0) args.append("-numStages " + QString::number(params.numStages) + " ");
  102 + if (params.precalcValBufSize >= 0) args.append("-precalcValBufSize " + QString::number(params.precalcValBufSize) + " ");
  103 + if (params.precalcIdxBufSize >= 0) args.append("-precalcIdxBufSize " + QString::number(params.precalcIdxBufSize) + " ");
  104 + if (params.baseFormatSave) args.append("-baseFormatSave ");
  105 + if (params.stageType != "") args.append("-stageType " + params.stageType + " ");
  106 + if (params.featureType != "") args.append("-featureType " + params.featureType + " ");
  107 + if (params.w >= 0) args.append("-w " + QString::number(params.w) + " ");
108 else qFatal("Must specify width"); 108 else qFatal("Must specify width");
109 - if (params.h >= 0) args += "-h " + QString::number(params.h) + " "; 109 + if (params.h >= 0) args.append("-h " + QString::number(params.h) + " ");
110 else qFatal("Must specify height"); 110 else qFatal("Must specify height");
111 - if (params.bt != "") args += "-bt " + params.bt + " ";  
112 - if (params.minHitRate >= 0) args += "-minHitRate " + QString::number(params.minHitRate) + " ";  
113 - if (params.maxFalseAlarmRate >= 0) args += "-maxFalseAlarmRate " + QString::number(params.maxFalseAlarmRate) + " ";  
114 - if (params.weightTrimRate >= 0) args += "-weightTrimRate " + QString::number(params.weightTrimRate) + " ";  
115 - if (params.maxDepth >= 0) args += "-maxDepth " + QString::number(params.maxDepth) + " ";  
116 - if (params.maxWeakCount >= 0) args += "-maxWeakCount " + QString::number(params.maxWeakCount) + " ";  
117 - if (params.mode != "") args += "-mode " + params.mode + " "; 111 + if (params.bt != "") args.append("-bt " + params.bt + " ");
  112 + if (params.minHitRate >= 0) args.append("-minHitRate " + QString::number(params.minHitRate) + " ");
  113 + if (params.maxFalseAlarmRate >= 0) args.append("-maxFalseAlarmRate " + QString::number(params.maxFalseAlarmRate) + " ");
  114 + if (params.weightTrimRate >= 0) args.append("-weightTrimRate " + QString::number(params.weightTrimRate) + " ");
  115 + if (params.maxDepth >= 0) args.append("-maxDepth " + QString::number(params.maxDepth) + " ");
  116 + if (params.maxWeakCount >= 0) args.append("-maxWeakCount " + QString::number(params.maxWeakCount) + " ");
  117 + if (params.mode != "") args.append("-mode " + params.mode + " ");
118 return args; 118 return args;
119 } 119 }
120 120
121 -QString buildSampleArgs(const TrainParams params) 121 +QStringList buildSampleArgs(const TrainParams params)
122 { 122 {
123 - QString args = "";  
124 - if (params.vec != "") args += "-vec "+params.vec+" "; 123 + QStringList args;
  124 + if (params.vec != "") args.append("-vec " + params.vec+" ");
125 else qFatal("Must specify location of positive vector"); 125 else qFatal("Must specify location of positive vector");
126 - if (params.img != "") args += "-img " + params.img + " ";  
127 - else if (params.info != "") args += "-info " + params.info + " "; 126 + if (params.img != "") args.append("-img " + params.img + " ");
  127 + else if (params.info != "") args.append("-info " + params.info + " ");
128 else qFatal("Must specify positive images"); 128 else qFatal("Must specify positive images");
129 - if (params.bg != "") args += "-bg " + params.bg + " ";  
130 - if (params.num > 0) args += "-num " + QString::number(params.num) + " ";  
131 - if (params.bgcolor >=0 ) args += "-bgcolor " + QString::number(params.bgcolor) + " ";  
132 - if (params.bgthresh >= 0) args += "-bgthresh " + QString::number(params.bgthresh) + " ";  
133 - if (params.maxidev >= 0) args += "-maxidev " + QString::number(params.maxidev) + " ";  
134 - if (params.maxxangle >= 0) args += "-maxxangle " + QString::number(params.maxxangle) + " ";  
135 - if (params.maxyangle >= 0) args += "-maxyangle " + QString::number(params.maxyangle) + " ";  
136 - if (params.maxzangle >= 0) args += "-maxzangle " + QString::number(params.maxzangle) + " ";  
137 - if (params.w >= 0) args += "-w " + QString::number(params.w) + " ";  
138 - if (params.h >= 0) args += "-h " + QString::number(params.h) + " ";  
139 - if (params.show) args += "-show ";  
140 - if (params.inv) args += "-inv ";  
141 - if (params.randinv) args += "-randinv "; 129 + if (params.bg != "") args.append("-bg " + params.bg + " ");
  130 + if (params.num > 0) args.append("-num " + QString::number(params.num) + " ");
  131 + if (params.bgcolor >=0 ) args.append("-bgcolor " + QString::number(params.bgcolor) + " ");
  132 + if (params.bgthresh >= 0) args.append("-bgthresh " + QString::number(params.bgthresh) + " ");
  133 + if (params.maxidev >= 0) args.append("-maxidev " + QString::number(params.maxidev) + " ");
  134 + if (params.maxxangle >= 0) args.append("-maxxangle " + QString::number(params.maxxangle) + " ");
  135 + if (params.maxyangle >= 0) args.append("-maxyangle " + QString::number(params.maxyangle) + " ");
  136 + if (params.maxzangle >= 0) args.append("-maxzangle " + QString::number(params.maxzangle) + " ");
  137 + if (params.w >= 0) args.append("-w " + QString::number(params.w) + " ");
  138 + if (params.h >= 0) args.append("-h " + QString::number(params.h) + " ");
  139 + if (params.show) args.append("-show ");
  140 + if (params.inv) args.append("-inv ");
  141 + if (params.randinv) args.append("-randinv ");
142 return args; 142 return args;
143 } 143 }
144 144
145 -void execCommand(QString cmd, QString args) 145 +void genSamples(const TrainParams params)
146 { 146 {
147 -#ifdef _WIN32  
148 - cmd += ".exe";  
149 -#endif  
150 - cmd += " " + args;  
151 - QProcess::execute(cmd); 147 + QStringList cmdArgs = buildSampleArgs(params);
  148 + QProcess::execute("opencv_createsamples",cmdArgs);
152 } 149 }
153 150
154 -void genSamples(const TrainParams params, const QString argStr = "") 151 +void trainCascade(const TrainParams params)
155 { 152 {
156 - QString cmdArgs = buildSampleArgs(params);  
157 - if (argStr != "") cmdArgs += " " + argStr;  
158 - execCommand("opencv_createsamples",cmdArgs);  
159 -}  
160 -  
161 -void trainCascade(const TrainParams params, const QString argStr = "")  
162 -{  
163 - QString cmdArgs = buildTrainingArgs(params);  
164 - if (argStr != "") cmdArgs += " " + argStr;  
165 -  
166 - execCommand("opencv_traincascade", cmdArgs); 153 + QStringList cmdArgs = buildTrainingArgs(params);
  154 + QProcess::execute("opencv_traincascade", cmdArgs);
167 } 155 }
168 156
169 namespace br 157 namespace br