1. 程式人生 > 其它 >Python-OpenCV:cv2.imread(),cv2.imshow(),cv2.imwrite()

Python-OpenCV:cv2.imread(),cv2.imshow(),cv2.imwrite()

本文部分參考部落格地址:

https://blog.csdn.net/fu6543210/article/details/80835280

https://blog.csdn.net/weixin_44015965/article/details/109547129

我自己從新整理和測試過。

cv2.imread(filename, flags)
引數:
filepath:讀入imge的完整路徑
flags:標誌位,{cv2.IMREAD_COLOR,cv2.IMREAD_GRAYSCALE,cv2.IMREAD_UNCHANGED}
cv2.IMREAD_COLOR:預設引數,讀入一副彩色圖片,忽略alpha通道,可用1作為實參替代
cv2.IMREAD_GRAYSCALE:讀入灰度圖片,可用0作為實參替代
cv2.IMREAD_UNCHANGED:顧名思義,讀入完整圖片,包括alpha通道,可用-1作為實參替代
PS:alpha通道,又稱A通道,是一個8位的灰度通道,該通道用256級灰度來記錄影象中的透明度覆信息,定義透明、不透明和半透明區域,其中黑表示全透明,白表示不透明,灰表示半透明

 

使用函式cv2.imshow(wname,img)顯示影象,第一個引數是顯示影象的視窗的名字,第二個引數是要顯示的影象(imread讀入的影象),視窗大小自動調整為圖片大小
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()#dv2.destroyWindow(wname)
cv2.waitKey顧名思義等待鍵盤輸入,單位為毫秒,即等待指定的毫秒數看是否有鍵盤輸入,若在等待時間內按下任意鍵則返回按鍵的ASCII碼,程式繼續執行。若沒有按下任何鍵,超時後返回-1。引數為0表示無限等待。不呼叫waitKey的話,視窗會一閃而逝,看不到顯示的圖片。
cv2.destroyAllWindow()銷燬所有視窗
cv2.destroyWindow(wname)銷燬指定視窗

 

使用函式cv2.imwrite(file,img,num)儲存一個影象。第一個引數是要儲存的檔名,第二個引數是要儲存的影象。可選的第三個引數,它針對特定的格式:對於JPEG,其表示的是影象的質量,用0 - 100的整數表示,預設95;對於png ,第三個引數表示的是壓縮級別。預設為3.
注意:
cv2.IMWRITE_JPEG_QUALITY型別為 long ,必須轉換成 int
cv2.IMWRITE_PNG_COMPRESSION, 從0到9 壓縮級別越高影象越小。

 

import cv2

img = cv2.imread('gitee.jpg',cv2.IMREAD_UNCHANGED)

cv2.imshow('image',img)

k = cv2.waitKey(0)

cv2.imwrite(r'test0.jpg',img,[int( cv2.IMWRITE_JPEG_QUALITY), 100]) 

  

import cv2
image_path = r'bird.png'

img = cv2.imread(str(image_path),cv2.IMREAD_UNCHANGED)

cv2.imshow('IMREAD_UNCHANGED+Color',img)
cv2.waitKey()
# Filename
filename = r'test1.png'

cv2.imwrite(str(filename), img, [int(cv2.IMWRITE_PNG_COMPRESSION), 1])