文章目录
1. 常用图片数据类型
-
使用
cv2.imread
返回的是一个
numpy.ndarray
类型, 同时 cv2.Mat 也是ndarray
的包装类 ,数据默认是 BGR 形式的img = cv2.imread('./image/test.png') # 100 x 78,32bpp print(type(img)) # <class 'numpy.ndarray'> print(img.shape) # (78, 100, 3) print(img) # cv2 的 image 是 BGR 格式 [[[ 90 108 68] ... BGR
-
PIL.Image
Image.open
返回了一个Image类, 具体数据可以 通过tobytes()
方法返回, 数据默认是RGBA形式img = Image.open("./image/test.png") print(img) # <PIL.PngImagePlugin.PngImageFile image mode=RGBA size=100x78 at 0x261D5255A90> print(img.width) print(img.height) print(img.mode)
同时 Image 类 兼容了
ndarray
, 也就是说 Image的数据可以直接转换成ndarray
类型img_data = np.array(img) # 这里面也是用 tobytes 来获取原始数据的 print(img_data) # [[[ 68 108 90 255] .... RGBA print(img_data.shape) # (78, 100, 4)
-
QImage
QImage
中存储的数据 从 bits() 获取, 为了方便, 统一转成 RGBA8888q_img = QImage() q_img.load("./image/test.png") w, h = q_img.width