|
|
|
@ -829,6 +829,10 @@ struct CV_GpuMinMaxLocTest: public CvTest |
|
|
|
|
cv::Mat mask(src.size(), CV_8U); |
|
|
|
|
rng.fill(mask, RNG::UNIFORM, Scalar(0), Scalar(2)); |
|
|
|
|
|
|
|
|
|
// At least one of mask elements must be non zero as OpenCV returns 0
|
|
|
|
|
// in such case, our implementation returns max value
|
|
|
|
|
mask.at<unsigned char>(0, 0) = 1; |
|
|
|
|
|
|
|
|
|
double minVal, maxVal; |
|
|
|
|
cv::Point minLoc, maxLoc; |
|
|
|
|
|
|
|
|
@ -855,6 +859,10 @@ struct CV_GpuMinMaxLocTest: public CvTest |
|
|
|
|
cv::Point minLoc_, maxLoc_;
|
|
|
|
|
cv::gpu::minMaxLoc(cv::gpu::GpuMat(src), &minVal_, &maxVal_, &minLoc_, &maxLoc_, cv::gpu::GpuMat(mask), valbuf, locbuf); |
|
|
|
|
|
|
|
|
|
cout << rows << " " << cols << " " << depth << endl; |
|
|
|
|
cout << minVal << " " << minVal_ << endl; |
|
|
|
|
cout << maxVal << " " << maxVal_ << endl; |
|
|
|
|
|
|
|
|
|
CHECK(minVal == minVal_, CvTS::FAIL_INVALID_OUTPUT); |
|
|
|
|
CHECK(maxVal == maxVal_, CvTS::FAIL_INVALID_OUTPUT); |
|
|
|
|
CHECK(0 == memcmp(src.ptr(minLoc.y) + minLoc.x * src.elemSize(), src.ptr(minLoc_.y) + minLoc_.x * src.elemSize(), src.elemSize()),
|
|
|
|
|