Reputation: 10061
I'm getting behavior I don't quite understand:
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)
Both versions of imread
read the same image into a numpy array of the same datatype, yet the values don't match. If the values were just mixed up I could chalk it up to the fact that opencv uses BGR whereas matplotlib (pylab) uses RGB, but that doesn't seem to account for this discrepancy.
Any thoughts?
Upvotes: 11
Views: 4198
Reputation: 2553
They don't match for a couple reasons:
Perhaps there is a nicer way of doing this, but if you wanted to match them, you would find:
pylab_img[::-1,:,::-1] == cv_img
Upvotes: 13