我试图在没有插值的情况下获得未失真的图像,但我得到一个断言错误。 由于重映射提供了一种插值方法,但我需要没有插值的图像,所以我尝试了下面的代码,但它给出了一个错误。
Mat R = Mat::eye(3, 3, CV_32F)*1;
unsigned int width = cf1.cols;
unsigned int height = cf1.rows;
Mat mapx = Mat(height, width, CV_32FC1);
Mat mapy = Mat(height, width, CV_32FC1);
initUndistortRectifyMap(Cam1MatrixParam, Cam1Distortion, Cam1MatrixParam, R, imagesize, CV_16SC2, mapx, mapy);
for (int j = 0; j < height; j++)
{
for ( int i = 0; i < width; i++)
{
undistorted.at<uchar>(mapy.at<float>(j, i), mapx.at<float>(j, i)) = cf1.at<uchar>(j, i);
}
}
有人能帮帮我吗?错误:OpenCV错误:断言失败(dims&lt; = 2&amp;&amp; data&amp;&amp; (无符号)i0&lt; (unsigned)size.p [0]&amp;&amp; (无符号)(i1 * DataType&lt; _Tp&gt; :: channels)&lt; (未签名)(size.p [1] * channels())&amp;&amp; ((((的sizeof(为size_t)LT;&LT; 28)| 0x8442211)
((DataType&lt; _Tp&gt; :: depth)&amp;((1&lt;&lt;&lt; 3)-1))* 4)&amp; 15)== elemSize1())在cv :: Mat :: at
中