我得到的行为我不太明白:
In [1]: import cv2
In [2]: pylab_img=pylab.imread('lena.jpg')
In [3]: cv_img=cv2.imread('lena.jpg')
In [4]: pylab_img[200,200,:]
Out[4]: array([228, 197, 176], dtype=uint8)
In [5]: cv_img[200,200,:]
Out[5]: array([ 84, 48, 132], dtype=uint8)
imread
的两个版本都将同一图像读入相同数据类型的numpy数组中,但值不匹配。如果这些值刚刚混淆了,我可以将其归结为opencv使用BGR,而matplotlib(pylab)使用RGB,但这似乎并不能解释这种差异。
有什么想法吗?
答案 0 :(得分:11)
由于以下几个原因,它们不匹配:
也许有更好的方法可以做到这一点,但如果你想匹配它们,你会发现:
pylab_img[::-1,:,::-1] == cv_img