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:
@@ -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. */
|
||||
|
||||
Reference in New Issue
Block a user