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就好了,令我哭笑不得。