opencv把图片读为matlab,OpenCv和matlab对图像的读取

  • Post author:
  • Post category:其他


现对一副名字为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)

203ed9cc9ef2c3a96d1abffa978dcff7.png

figure1

a01df30c3c0a80e00f622ce4849464d0.png

figure2

接下来,我们换成一张彩色图:flower.bmp(figure3)再来看看,是否两个程序读取的还是一样的:

80b7167e6c8fd13584b9206c97db9e17.png

figure3

下面(figure4)就是读取g通道的结果:显然读取值不他一样

bdecddf55ab68944e819dac6aedbf6cc.png

figure4

接下来再做一步试验:把flower.bmp分别用Opencv的cvCvtColor(pOldImg1,dst,CV_BGR2GRAY)和Matlab的igray = rgb2gray(img)函数将图片转换为灰度,看看会不会有什么偏差。事实证明(figure5),转化为灰度图之后,两张图片的数据又变的一样了。

4cb7969462487a57bef7ce4a56692b7a.png

figure5