系列文章目錄
OpenCV教程-初識OpenCV-第一篇
文章目錄
- 系列文章目錄
- 前言
- OpenCV是什么?
- 如何安裝OpenCV?
- 如何匯入OpenCV
- 使用
- 匯入圖片
- cv2.IMREAD_COLOR
- cv2.IMREAD_GRAYSCALE
- cv2.IMREAD_UNCHANGED
- 解決回傳NoneType的問題
- 顯示圖片
- cv2.waitKey
- cv2.destoryAllWindows
- 保存圖片
- 小結
前言
本文章Python環境為Anaconda 3.8,
OpenCV是什么?
OpenCV是一個計算機視覺庫,可用于影像處理等各個方面,
如何安裝OpenCV?
敲黑板,很多新手都在這里栽坑,可不是pip install cv2,而是pip install opencv-python,在這里建議大家使用pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ opencv-python來安裝OpenCV,
如何匯入OpenCV
敲黑板,很多新手都在這里栽坑,應該用import cv2來匯入OpenCV,可不是import opencv-python呀!
使用
匯入圖片
使用cv2.imread函式來匯入圖片,回傳格式為numpy.ndarray陣列,
該函式有兩個引數,第一個是圖片路徑,第二個是匯入圖片的設定,具體請看下面解釋,
cv2.IMREAD_COLOR
默認引數,以RGB模式讀入一副彩色圖片,忽略alpha通道,
cv2.IMREAD_GRAYSCALE
讀入一副灰度圖
cv2.IMREAD_UNCHANGED
讀入一副完整圖片,包括alpha通道,
解決回傳NoneType的問題
可以嘗試使用cv2.imdecode(np.fromfile('檔案路徑', dtype=np.uint8), '匯入設定')來代替imread,出現該錯誤的原因主要是路徑中包含中文或空格,
顯示圖片
請使用下列代碼來顯示圖片,
import cv2
cv2.imshow('影像標題', 'numpy.ndarray物件 (圖片)')
cv2.waitKey(0)
cv2.destroyAllWindows()
cv2.imshow是顯示圖片的函式,至于為什么后面要加那兩句,請看下方↓↓↓
cv2.waitKey
請注意,該代碼在至少有一個HighGUI視窗時才有用,
這行代碼是讓程式暫停,直到按下任意鍵,將會回傳按下鍵的ASCII碼,引數是超時時間,單位為毫秒,0為一直等待,超時回傳-1,
如果想按下指定按鍵才會退出,可以看如下代碼↓↓↓
cv2.waitKey(0) == 27
這里的27是按鍵的ASCII碼,此處的27是ESC按鍵的ASCII碼,
有些人可能會覺得這樣設計很麻煩,請看下面的截圖↓↓↓

這段截圖是從函式的檔案里截取的,大意是:
注意:函式#waitKey和#pollKey是HighGUI中唯一可以獲取和處理GUI事件的方法,因此需要定期呼叫其中一個以進行正常事件處理,除非HighGUI在負責事件處理的環境中使用,
cv2.destoryAllWindows
這個函式的作用是銷毀所有視窗,這里我就不多說了,懂得都懂,
與它差不多的是cv2.destoryWindow,引數是要銷毀的視窗標題,
保存圖片
使用函式cv2.imwrite(file,img,num)保存一個影像,第一個引數是要保存的檔案名,第二個引數是要保存的影像,可選的第三個引數,它針對特定的格式:對于JPEG,其表示的是影像的質量,用0 - 100的整數表示,默認95;對于png ,第三個引數表示的是壓縮級別,默認為3.
注意:
cv2.IMWRITE_JPEG_QUALITY型別為long,必須轉換成int,引數越小影像越小,這個是有損壓縮,
cv2.IMWRITE_PNG_COMPRESSION從0到9壓縮級別越高影像越小,這個是無損壓縮,
cv2.imwrite('圖片路徑', 'numpy.ndarray物件 (圖片)', [int(cv2.IMWRITE_JPEG_QUALITY), '圖片質量 (0-100)'])
cv2.imwrite('圖片路徑', 'numpy.ndarray物件 (圖片)', [int(cv2.IMWRITE_PNG_COMPRESSION), '壓縮級別 (0-9)'])
小結
使用pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/ opencv-python來安裝OpenCV,
使用import cv2匯入OpenCV,
感謝觀看!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/301374.html
標籤:其他
上一篇:OpenCV進階--影像顏色空間
