PIL和cv2中的不同像素信息

时间:2018-06-18 15:36:31

标签: python opencv python-imaging-library

我使用PILcv2加载了相同的图像,但相同索引的像素信息不同。这是我的代码:

import cv2
from PIL import Image

img = cv2.imread('Fruits1.jpg') # Can be many different formats.
print(img[100, 200])

img = Image.open('Fruits1.jpg')
pixel_img = img.load()
print(pixel_img[100, 200])

输出:

[191 212 209]
(255, 255, 255)

两种情况下RGB通道的数量不一样吗?这是我用的图像。  

1 个答案:

答案 0 :(得分:3)

OpenCV返回一个numpy数组。因此,您的索引是[col_idx,row_idx]或[y,x],而PIL像素访问是[x,y]坐标。

将PIL访问权限翻转为[200,100]以查看相同的像素。

小心,会有另一个混乱:PIL按RGB顺序读取通道,但OpenCV在BGR中读取它们!