mirror of
https://github.com/opencv/opencv.git
synced 2026-07-30 15:53:03 +04:00
added extra debug parameters in resize test
This commit is contained in:
@@ -1491,16 +1491,39 @@ TEST(Imgproc_resize_area, regression)
|
||||
};
|
||||
|
||||
cv::Mat src(16, 16, CV_16UC1, input_data);
|
||||
cv::Mat actual;
|
||||
cv::Mat expected(5,5,CV_16UC1, expected_data);
|
||||
cv::Mat actual(expected.size(), expected.type());
|
||||
|
||||
cv::resize(src, actual, cv::Size(), 0.3, 0.3, INTER_AREA);
|
||||
cv::resize(src, actual, actual.size(), 0.0, 0.0, INTER_AREA);
|
||||
|
||||
ASSERT_EQ(actual.type(), expected.type());
|
||||
ASSERT_EQ(actual.size(), expected.size());
|
||||
Mat diff;
|
||||
absdiff(actual, expected, diff);
|
||||
Mat one_channel_diff = diff.reshape(1);
|
||||
|
||||
int elem_diff = 1.0f;
|
||||
Size dsize = actual.size();
|
||||
for (int dy = 0; dy < dsize.height; ++dy)
|
||||
{
|
||||
ushort* eD = expected.ptr<ushort>(dy);
|
||||
ushort* aD = actual.ptr<ushort>(dy);
|
||||
|
||||
for (int dx = 0; dx < dsize.width; ++dx)
|
||||
if (fabs(static_cast<float>(aD[dx] - eD[dx])) > elem_diff)
|
||||
{
|
||||
cvtest::TS::ptr()->printf(cvtest::TS::SUMMARY, "Inf norm: %f\n", static_cast<float>(norm(actual, expected, NORM_INF)));
|
||||
cvtest::TS::ptr()->printf(cvtest::TS::SUMMARY, "Error in : (%d, %d)\n", dx, dy);
|
||||
|
||||
const int radius = 3;
|
||||
int rmin = MAX(dy - radius, 0), rmax = MIN(dy + radius, dsize.height);
|
||||
int cmin = MAX(dx - radius, 0), cmax = MIN(dx + radius, dsize.width);
|
||||
|
||||
std::cout << "actual result:\n" << actual(Range(rmin, rmax), Range(cmin, cmax)) << std::endl;
|
||||
std::cout << "expected result:\n" << expected(Range(rmin, rmax), Range(cmin, cmax)) << std::endl;
|
||||
}
|
||||
}
|
||||
|
||||
ASSERT_EQ(norm(one_channel_diff, cv::NORM_INF),0);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user