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

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