python学习过程一些问题记录

1、cv2.imread 和scipy.misc.imread的区别

cv2.imread读出来的图片是BGR格式的numpy.array,scipy.misc.imread读出来的图片是RGB格式的numpy.array。

因为都是numpy.array,所以scipy.misc.imread读出来的图片可以用cv2.imwrite直接保存。

而很神奇的是,cv2.imread读出来的图片直接用cv2.imwrite保存的图片颜色会失真,因为cv2.imwrite会把接收的矩阵以RGB格式写入图片,这就和cv2.imread不配套了。刚开始学openCV的时候这里特别容易乱。

解决方法是,cv2.imread读出来的图片要用cv2.imwrite保存前,先用cv2.cvtColor函数把BGR图像转为RGB才可以看到正常颜色的图片。

import cv2
img = cv2.imread('img path')
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
cv2.imwrite('save img path', img)

此外,scipy.misc.imread对处理图片的size有一定要求,实际使用时我遇过一个错误信息提示我图片尺寸太大,scipy.misc.imread无法处理,改用cv2.imread就好了,令我哭笑不得。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章