今天使用OpenGL输出三维重构的图像,并对其进行纹理贴图处理。
在调试Opencv程序的时候,突然报错个小错误:one of arguments value out of range in cvPtr2D。
博主的目的是想通过CvGet2D()函数获取彩色图像的RGB值,并进行对图像进行纹理贴图数据的时候;
为了贪方便 ,使用全局变量w和h访问图片当前位置的数值,因为只取原图src_disp的width和height值,所以对src_rgb图进行提取纹理数据的时候,程序报错在当前位置。(当时就好奇,相同大小的矩阵数据居然报错,然后换成统一的src_rgb的w和h,居然就没错了。)
所以w和h的值并不等于src_rgb图的值,所以后面cvSet2D就越界了,报错为:"one of arguments value out of range in cvPtr2D"。
(PS:解决方法:博主本以为两图的矩阵大小是一样的,最后就好奇打印出来看下,发现原来是自己初始化图像数据矩阵写错了大小,粗心大意了。访问图像的时候,多加留意图像的大小为好,不然报个错出来,又提心吊胆。)