现对一副名字为rice.bmp(figure1)(灰度图)的图像做实验,如图可知
1:matlab是从1开始读取行、列,Opencv是从0开始读取。Console中显示的第五行,是由
printf(“%d行,%d列:value:%d\n”,i+1,j+1, ptr[j+0]);
这个语句处理过的,显示为“第五行”,实则i equals 4
2:matlab和Opencv对灰度图的读取,值是一样的(figure2)
figure1
figure2
接下来,我们换成一张彩色图:flower.bmp(figure3)再来看看,是否两个程序读取的还是一样的:
figure3
下面(figure4)就是读取g通道的结果:显然读取值不他一样
figure4
接下来再做一步试验:把flower.bmp分别用Opencv的cvCvtColor(pOldImg1,dst,CV_BGR2GRAY)和Matlab的igray = rgb2gray(img)函数将图片转换为灰度,看看会不会有什么偏差。事实证明(figure5),转化为灰度图之后,两张图片的数据又变的一样了。
figure5