1
0
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:
Alexander Smorkalov
2023-07-27 18:38:25 +03:00
151 changed files with 5199 additions and 1111 deletions
+38
View File
@@ -1093,5 +1093,43 @@ TEST(Imgproc_warpPolar, identity)
#endif
}
TEST(Imgproc_Remap, issue_23562)
{
cv::RNG rng(17);
Mat_<float> mapx({3, 3}, {0, 1, 2, 0, 1, 2, 0, 1, 2});
Mat_<float> mapy({3, 3}, {0, 0, 0, 1, 1, 1, 2, 2, 2});
for (int cn = 1; cn <= 4; ++cn) {
Mat src(3, 3, CV_32FC(cn));
rng.fill(src, cv::RNG::UNIFORM, -1, 1);
Mat dst = Mat::zeros(3, 3, CV_32FC(cn));
Mat ref = src.clone();
remap(src, dst, mapx, mapy, INTER_LINEAR, BORDER_TRANSPARENT);
ASSERT_EQ(0.0, cvtest::norm(ref, dst, NORM_INF)) << "channels=" << cn;
}
mapx = Mat1f({3, 3}, {0, 1, 2, 0, 1, 2, 0, 1, 2});
mapy = Mat1f({3, 3}, {0, 0, 0, 1, 1, 1, 2, 2, 1.5});
for (int cn = 1; cn <= 4; ++cn) {
Mat src = cv::Mat(3, 3, CV_32FC(cn));
Mat dst = 10 * Mat::ones(3, 3, CV_32FC(cn));
for(int y = 0; y < 3; ++y) {
for(int x = 0; x < 3; ++x) {
for(int k = 0; k < cn; ++k) {
src.ptr<float>(y,x)[k] = 10.f * y + x;
}
}
}
Mat ref = src.clone();
for(int k = 0; k < cn; ++k) {
ref.ptr<float>(2,2)[k] = (src.ptr<float>(1, 2)[k] + src.ptr<float>(2, 2)[k]) / 2.f;
}
remap(src, dst, mapx, mapy, INTER_LINEAR, BORDER_TRANSPARENT);
ASSERT_EQ(0.0, cvtest::norm(ref, dst, NORM_INF)) << "channels=" << cn;
}
}
}} // namespace
/* End of file. */