float image_sqsum_ = (float)(\r
(image_sqsum.ptr(y + h)[x + w] - image_sqsum.ptr(y)[x + w]) -\r
(image_sqsum.ptr(y + h)[x] - image_sqsum.ptr(y)[x]));\r
- result.ptr(y)[x] = min(1.f, (ccorr - image_sum_ * templ_sum_scale) * \r
- rsqrtf(templ_sqsum_scale * max(1.f, image_sqsum_ - weight * image_sum_ * image_sum_)));\r
+ result.ptr(y)[x] = (ccorr - image_sum_ * templ_sum_scale) * \r
+ rsqrtf(templ_sqsum_scale * max(1.f, image_sqsum_ - weight * image_sum_ * image_sum_));\r
}\r
}\r
\r
float ccorr = result.ptr(y)[x];\r
float rdenom = rsqrtf(templ_sqsum_scale * max(1.f, image_sqsum_r_ - weight * image_sum_r_ * image_sum_r_ \r
+ image_sqsum_g_ - weight * image_sum_g_ * image_sum_g_));\r
- result.ptr(y)[x] = min(1.f, (ccorr - image_sum_r_ * templ_sum_scale_r\r
- - image_sum_g_ * templ_sum_scale_g) * rdenom);\r
+ result.ptr(y)[x] = (ccorr - image_sum_r_ * templ_sum_scale_r\r
+ - image_sum_g_ * templ_sum_scale_g) * rdenom;\r
}\r
}\r
\r
float rdenom = rsqrtf(templ_sqsum_scale * max(1.f, image_sqsum_r_ - weight * image_sum_r_ * image_sum_r_ \r
+ image_sqsum_g_ - weight * image_sum_g_ * image_sum_g_\r
+ image_sqsum_b_ - weight * image_sum_b_ * image_sum_b_));\r
- result.ptr(y)[x] = min(1.f, (ccorr - image_sum_r_ * templ_sum_scale_r\r
- - image_sum_g_ * templ_sum_scale_g\r
- - image_sum_b_ * templ_sum_scale_b) * rdenom);\r
+ result.ptr(y)[x] = (ccorr - image_sum_r_ * templ_sum_scale_r\r
+ - image_sum_g_ * templ_sum_scale_g\r
+ - image_sum_b_ * templ_sum_scale_b) * rdenom;\r
}\r
}\r
\r
+ image_sqsum_g_ - weight * image_sum_g_ * image_sum_g_\r
+ image_sqsum_b_ - weight * image_sum_b_ * image_sum_b_\r
+ image_sqsum_a_ - weight * image_sum_a_ * image_sum_a_));\r
- result.ptr(y)[x] = min(1.f, (ccorr - image_sum_r_ * templ_sum_scale_r\r
- - image_sum_g_ * templ_sum_scale_g\r
- - image_sum_b_ * templ_sum_scale_b\r
- - image_sum_a_ * templ_sum_scale_a) * rdenom);\r
+ result.ptr(y)[x] = (ccorr - image_sum_r_ * templ_sum_scale_r\r
+ - image_sum_g_ * templ_sum_scale_g\r
+ - image_sum_b_ * templ_sum_scale_b\r
+ - image_sum_a_ * templ_sum_scale_a) * rdenom;\r
}\r
}\r
\r
float image_sqsum_ = (float)(\r
(image_sqsum.ptr(y + h)[(x + w) * cn] - image_sqsum.ptr(y)[(x + w) * cn]) -\r
(image_sqsum.ptr(y + h)[x * cn] - image_sqsum.ptr(y)[x * cn]));\r
- result.ptr(y)[x] = min(1.f, result.ptr(y)[x] * rsqrtf(max(1.f, image_sqsum_) * templ_sqsum));\r
+ result.ptr(y)[x] = result.ptr(y)[x] * rsqrtf(max(1.f, image_sqsum_) * templ_sqsum);\r
}\r
}\r
\r
F(t = clock();)\r
gpu::matchTemplate(gpu::GpuMat(image), gpu::GpuMat(templ), dst, CV_TM_CCORR_NORMED);\r
F(cout << "gpu_block: " << clock() - t << endl;)\r
- if (!check(dst_gold, Mat(dst), h * w * 1e-4f)) return;\r
+ if (!check(dst_gold, Mat(dst), h * w * 1e-6f)) return;\r
\r
gen(image, n, m, CV_8U, cn);\r
gen(templ, h, w, CV_8U, cn);\r
F(t = clock();)\r
gpu::matchTemplate(gpu::GpuMat(image), gpu::GpuMat(templ), dst, CV_TM_CCOEFF_NORMED);\r
F(cout << "gpu_block: " << clock() - t << endl;)\r
- if (!check(dst_gold, Mat(dst), h * w * 1e-4f)) return;\r
+ if (!check(dst_gold, Mat(dst), h * w * 1e-6f)) return;\r
\r
gen(image, n, m, CV_32F, cn);\r
gen(templ, h, w, CV_32F, cn);\r