Commit 23f3062ccce570390175d14d55001d4e63cf17e1
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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 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 | 157 | namespace br | ... | ... |