基于Python3.6,记录一点Image和OpenCV读取图片时的使用心得。不足之处欢迎交流学习。
- Image读取图片默认是以RGB模式读取;而OpenCV是默认以BGR读取。混合使用时,记得转换。
- Image里img.size结果是宽高,OpenCV里img.shape是行列。
- OpenCV里cv2.imshow(’ ',img)显示图片与不同数据类型的numpy.ndarray有关。当Image转换为cv2后,cv2.imshow()可能会出现问题。
我的解决办法是打印出cv2里具体像素值,并根据cv2.imshow()针对不同数据类型的numpy.ndarray内置的不同处理方法,进行相应的对策。点击这里是我的另一篇博客分析cv2.imshow()与numpy.ndarray数据类型的关系。
这里以RGB模式新建一个测试图片,更好的来说明。
创建RGB演示图片
import cv2
from PIL import Image
import numpy as np
# RGB格式
red, green, blue, yellow = (255, 0, 0), (0, 255, 0), (0, 0, 255), (255, 255, 0)
height, width= 100, 200
arr = np.zeros((height, width, 3), dtype='uint8')
for i in range(0, int(height/2)):
for j in range(