python 实现读取图片的像素值。

1.利用opencv读取。
示例代码:

cv2中的路径,不能有中文,否则读出的image为空。

imagess = cv2.imread(r'C:\Users\Administrator\Desktop\03.jpg',-1)
print(imagess.shape)
print(imagess)
'''
(800, 601, 3)
[[[254 196 174]
  [254 196 174]
  [254 196 174]
  ...
  [252 253 233]
  [252 253 233]
  [252 253 233]]

 [[254 196 174]
  [254 196 174]
  [254 196 174]
'''
#当第二个参数大于0或者小于0时,输出(800, 601, 3)
#当第二个参数为0是,输出(800, 601),此时读出的是灰度图

2.利用PIL 的Image

from PIL import Image

image =Image.open(r'C:\Users\Administrator\Desktop\task\标注\02.jpg').convert('RGB')
print(image)
print(image.size)
images = np.asarray(image)#转化成数组以后,iamges中存储的是图片的像素值。
print(images)

'''

(601, 800)
[[[174 196 254]
  [174 196 254]
  [174 196 254]
  ...
  [233 253 252]
  [233 253 252]
  [233 253 252]]

 [[174 196 254]
  [174 196 254]
  [174 196 254]
'''

读取以后发现 一个问题,显示的像素值不同。
通过查阅博客,原来cv2.imread()显示像素时是BGR显示。
PIL Image显示是RGB显示。参考博文

PIL是比较全的python第三方图像处理库,有空可以进行学习。学习地址

你可能感兴趣的:(python)