天天看點

opencv入門(python)

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是讀取标記。該标記用來控制讀取檔案的類型
opencv入門(python)

函數cv2.imread()能夠讀取多種不同類型的圖像

opencv入門(python)

顯示圖像

  1. namedWindow函數

    用來建立指定名稱的視窗,其文法格式為:

None = cv2.namedWindow( winname )      
  1. 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 )      
  1. waitKey函數

    函數cv2.waitKey()用來等待按鍵,當使用者按下鍵盤後,該語句會被執行,并擷取傳回值。

retval = cv2.waitKey( [delay] )      
  • retval表示傳回值。如果沒有按鍵被按下,則傳回-1;如果有按鍵被按下,則傳回該按鍵的ASCII碼。
  • delay表示等待鍵盤觸發的時間,機關是ms。當該值是負數或者零時,表示無限等待。該值預設為0。
Python提供了函數ord(),用來擷取字元的ASCII碼值。
  1. destroyWindow函數

    函數cv2.destroyWindow()用來釋放(銷毀)指定視窗,其文法格式為:

None = cv2.destroyWindow( winname )      

在實際使用中,該函數通常與函數cv2.waitKey()組合實作視窗的釋放。

  1. 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")