断言错误使用.at&重新映射而不插值

时间:2016-07-02 16:08:44

标签: c++ opencv

我试图在没有插值的情况下获得未失真的图像,但我得到一个断言错误。 由于重映射提供了一种插值方法,但我需要没有插值的图像,所以我尝试了下面的代码,但它给出了一个错误。

 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

中     
  
有人能帮帮我吗?

0 个答案:

没有答案