mirror of
https://github.com/opencv/opencv.git
synced 2026-07-31 00:03:03 +04:00
Merge branch 4.x
This commit is contained in:
@@ -176,4 +176,37 @@ TEST(Imgproc_DistanceTransform, precise_long_dist)
|
||||
EXPECT_EQ(cv::norm(expected, dist, NORM_INF), 0);
|
||||
}
|
||||
|
||||
TEST(Imgproc_DistanceTransform, ipp_deterministic_corner)
|
||||
{
|
||||
setNumThreads(1);
|
||||
|
||||
Mat src(1, 4096, CV_8U, Scalar(255)), dist;
|
||||
src.at<uint8_t>(0, 0) = 0;
|
||||
distanceTransform(src, dist, DIST_L2, DIST_MASK_PRECISE);
|
||||
for (int i = 0; i < src.cols; ++i)
|
||||
{
|
||||
float expected = static_cast<float>(i);
|
||||
ASSERT_EQ(expected, dist.at<float>(0, i)) << cv::format("diff: %e", expected - dist.at<float>(0, i));
|
||||
}
|
||||
}
|
||||
|
||||
TEST(Imgproc_DistanceTransform, ipp_deterministic)
|
||||
{
|
||||
setNumThreads(1);
|
||||
RNG& rng = TS::ptr()->get_rng();
|
||||
Mat src(1, 800, CV_8U, Scalar(255)), dist;
|
||||
int p1 = cvtest::randInt(rng) % src.cols;
|
||||
int p2 = cvtest::randInt(rng) % src.cols;
|
||||
int p3 = cvtest::randInt(rng) % src.cols;
|
||||
src.at<uint8_t>(0, p1) = 0;
|
||||
src.at<uint8_t>(0, p2) = 0;
|
||||
src.at<uint8_t>(0, p3) = 0;
|
||||
distanceTransform(src, dist, DIST_L2, DIST_MASK_PRECISE);
|
||||
for (int i = 0; i < src.cols; ++i)
|
||||
{
|
||||
float expected = static_cast<float>(min(min(abs(i - p1), abs(i - p2)), abs(i - p3)));
|
||||
ASSERT_EQ(expected, dist.at<float>(0, i)) << cv::format("diff: %e", expected - dist.at<float>(0, i));
|
||||
}
|
||||
}
|
||||
|
||||
}} // namespace
|
||||
|
||||
Reference in New Issue
Block a user