mirror of
https://github.com/opencv/opencv.git
synced 2026-07-30 15:53:03 +04:00
Merge branch 4.x
This commit is contained in:
@@ -40,6 +40,7 @@
|
||||
//M*/
|
||||
|
||||
#include "test_precomp.hpp"
|
||||
#include <numeric>
|
||||
|
||||
namespace opencv_test { namespace {
|
||||
|
||||
@@ -128,4 +129,51 @@ BIGDATA_TEST(Imgproc_DistanceTransform, issue_23895_5x5_labels)
|
||||
EXPECT_EQ(nz, 0);
|
||||
}
|
||||
|
||||
TEST(Imgproc_DistanceTransform, max_distance_3x3)
|
||||
{
|
||||
Mat src = Mat::ones(1, 70000, CV_8U), dist;
|
||||
src.at<uint8_t>(0, 0) = 0;
|
||||
distanceTransform(src, dist, DIST_L2, DIST_MASK_3);
|
||||
|
||||
double minVal, maxVal;
|
||||
minMaxLoc(dist, &minVal, &maxVal);
|
||||
EXPECT_GE(maxVal, 65533);
|
||||
}
|
||||
|
||||
TEST(Imgproc_DistanceTransform, max_distance_5x5)
|
||||
{
|
||||
Mat src = Mat::ones(1, 70000, CV_8U), dist;
|
||||
src.at<uint8_t>(0, 0) = 0;
|
||||
distanceTransform(src, dist, DIST_L2, DIST_MASK_5);
|
||||
|
||||
double minVal, maxVal;
|
||||
minMaxLoc(dist, &minVal, &maxVal);
|
||||
EXPECT_GE(maxVal, 65533);
|
||||
}
|
||||
|
||||
TEST(Imgproc_DistanceTransform, max_distance_5x5_labels)
|
||||
{
|
||||
Mat src = Mat::ones(1, 70000, CV_8U), dist, labels;
|
||||
src.at<uint8_t>(0, 0) = 0;
|
||||
distanceTransform(src, dist, labels, DIST_L2, DIST_MASK_5);
|
||||
|
||||
double minVal, maxVal;
|
||||
minMaxLoc(dist, &minVal, &maxVal);
|
||||
EXPECT_GE(maxVal, 65533);
|
||||
}
|
||||
|
||||
TEST(Imgproc_DistanceTransform, precise_long_dist)
|
||||
{
|
||||
static const int maxDist = 1 << 16;
|
||||
Mat src = Mat::ones(1, 70000, CV_8U), dist;
|
||||
src.at<uint8_t>(0, 0) = 0;
|
||||
distanceTransform(src, dist, DIST_L2, DIST_MASK_PRECISE, CV_32F);
|
||||
|
||||
Mat expected(src.size(), CV_32F);
|
||||
std::iota(expected.begin<float>(), expected.end<float>(), 0.f);
|
||||
expected.colRange(maxDist, expected.cols).setTo(maxDist);
|
||||
|
||||
EXPECT_EQ(cv::norm(expected, dist, NORM_INF), 0);
|
||||
}
|
||||
|
||||
}} // namespace
|
||||
|
||||
Reference in New Issue
Block a user