今天遇到了一种情况,使用mat.at<typename>或者.ptr访问时,debug模式下出现异常(应该是提示越界),release下得到了非常诡异的结果,使用mat.data指针也无法正常访问,但是直接cout<<mat<<endl可以得到正确的结果。后来发现原因如下:
我是定义了一个mat,并对其进行了初始化mat(3,3,CV_32F),在后面调用了一个OpenCV的函数,看了下源代码其中的返回值为CV_64F,估计可能返回值赋值的时候出现了问题,不管用.at<float>还是.at<double>都不能正常访问数据,初始化改成了CV_64F就好了。