| 1273 | //#define ORG |
| 1274 | |
| 1275 | void CMatchToolDlg::MatchTemplate (cv::Mat& matSrc, s_TemplData* pTemplData, cv::Mat& matResult, int iLayer, BOOL bUseSIMD) |
| 1276 | { |
| 1277 | if (m_ckSIMD.GetCheck () && bUseSIMD) |
| 1278 | { |
| 1279 | //From ImageShop |
| 1280 | matResult.create (matSrc.rows - pTemplData->vecPyramid[iLayer].rows + 1, |
| 1281 | matSrc.cols - pTemplData->vecPyramid[iLayer].cols + 1, CV_32FC1); |
| 1282 | matResult.setTo (0); |
| 1283 | cv::Mat& matTemplate = pTemplData->vecPyramid[iLayer]; |
| 1284 | |
| 1285 | int t_r_end = matTemplate.rows, t_r = 0; |
| 1286 | for (int r = 0; r < matResult.rows; r++) |
| 1287 | { |
| 1288 | float* r_matResult = matResult.ptr<float> (r); |
| 1289 | uchar* r_source = matSrc.ptr<uchar> (r); |
| 1290 | uchar* r_template, *r_sub_source; |
| 1291 | for (int c = 0; c < matResult.cols; ++c, ++r_matResult, ++r_source) |
| 1292 | { |
| 1293 | r_template = matTemplate.ptr<uchar> (); |
| 1294 | r_sub_source = r_source; |
| 1295 | for (t_r = 0; t_r < t_r_end; ++t_r, r_sub_source += matSrc.cols, r_template += matTemplate.cols) |
| 1296 | { |
| 1297 | *r_matResult = *r_matResult + IM_Conv_SIMD (r_template, r_sub_source, matTemplate.cols); |
| 1298 | } |
| 1299 | } |
| 1300 | } |
| 1301 | //From ImageShop |
| 1302 | } |
| 1303 | else |
| 1304 | matchTemplate (matSrc, pTemplData->vecPyramid[iLayer], matResult, CV_TM_CCORR); |
| 1305 | |
| 1306 | /*Mat diff; |
| 1307 | absdiff(matResult, matResult, diff); |
| 1308 | double dMaxValue; |
| 1309 | minMaxLoc(diff, 0, &dMaxValue, 0,0);*/ |
| 1310 | CCOEFF_Denominator (matSrc, pTemplData, matResult, iLayer); |
| 1311 | } |
| 1312 | void CMatchToolDlg::GetRotatedROI (Mat& matSrc, Size size, Point2f ptLT, double dAngle, Mat& matROI) |
| 1313 | { |
| 1314 | double dAngle_radian = dAngle * D2R; |
nothing calls this directly
no test coverage detected