opencv入門
安裝
在pypi.org/project/ope…
完成下載下傳後,在Anaconda Prompt内使用pip install完整路徑檔案名完成安裝。
pip install D:\anaconda\Lib\opencv_python-3.4.3.18-cp37-cp37m-win_amd64.whl
基本使用
讀取圖像
img = cv2.imread( filename[, flags] )
img是傳回值,其值是讀取到的圖像。
如果未讀取到圖像,則傳回“None”。
- filename表示要讀取的圖像的完整檔案名。
- flags是讀取标記。該标記用來控制讀取檔案的類型

函數cv2.imread()能夠讀取多種不同類型的圖像
顯示圖像
-
namedWindow函數
用來建立指定名稱的視窗,其文法格式為:
None = cv2.namedWindow( winname )
-
imshow函數
函數cv2.imshow()用來顯示圖像,其文法格式為:
None = cv2.imshow( winname, mat)
- winname是視窗名稱。
- mat是要顯示的圖像。
也可以不建立視窗,直接使用函數cv2.imshow()引用一個并不存在的視窗,并在其中顯示指定圖像,這樣函數cv2.imshow()實際上會完成如下兩步操作。
第1步:函數cv2.imshow()建立一個指定名稱的新視窗。
第2步:函數cv2.imshow()将圖像顯示在剛建立的視窗内。
cv2.imshow("不存在的視窗名", 要顯示的圖像)
import cv2
lena=cv2.imread("lena.bmp")
cv2.imshow("demo", lena )
-
waitKey函數
函數cv2.waitKey()用來等待按鍵,當使用者按下鍵盤後,該語句會被執行,并擷取傳回值。
retval = cv2.waitKey( [delay] )
- retval表示傳回值。如果沒有按鍵被按下,則傳回-1;如果有按鍵被按下,則傳回該按鍵的ASCII碼。
- delay表示等待鍵盤觸發的時間,機關是ms。當該值是負數或者零時,表示無限等待。該值預設為0。
Python提供了函數ord(),用來擷取字元的ASCII碼值。
-
destroyWindow函數
函數cv2.destroyWindow()用來釋放(銷毀)指定視窗,其文法格式為:
None = cv2.destroyWindow( winname )
在實際使用中,該函數通常與函數cv2.waitKey()組合實作視窗的釋放。
-
destroyAllWindows函數
函數cv2.destroyAllWindows()用來釋放(銷毀)所有視窗,其文法格式為:
None = cv2.destroyAllWindows( )
儲存圖像
OpenCV提供了函數cv2.imwrite(),用來儲存圖像,該函數的文法格式為:
retval = cv2.imwrite( filename, img[, params] )
- retval是傳回值。如果儲存成功,則傳回邏輯值真(True);如果儲存不成功,則傳回邏輯值假(False)。
- filename是要儲存的目标檔案的完整路徑名,包含檔案擴充名。
- img是被儲存的圖像。
- params是儲存類型參數,是可選的。
OpenCV貢獻庫
OpenCV貢獻庫:該擴充庫的名稱為opencv_contrib
OpenCV貢獻庫中包含了非常多的擴充子產品:
- bioinspired:生物視覺子產品。
- datasets:資料集讀取子產品。
- dnn:深度神經網絡子產品。
- face:人臉識别子產品。
- matlab:MATLAB接口子產品。
- stereo:雙目立體比對子產品。
- text:視覺文本比對子產品。
- tracking:基于視覺的目标跟蹤子產品。
- ximgpro:圖像處理擴充子產品。
- xobjdetect:增強2D目标檢測子產品。
- xphoto:計算攝影擴充子產品。
可以通過以下兩種方式使用貢獻庫:
- 下載下傳OpenCV貢獻庫,使用cmake手動編譯。
- 通過語句pip install opencv-contrib-python直接安裝編譯好的OpenCV貢獻庫。
例子
import cv2
filename = r"C:\Users\space.png"
img=cv2.imread(filename)
cv2.namedWindow("test")
cv2.imshow("test",img)
cv2.imwrite("space_copy.png",img)
cv2.waitKey()
cv2.destroyWindow("test")