###### tags: `OpenCV` # OpenCV 基礎篇 * OpenCV的全稱是Open Source Computer Vision Library,是一個跨平台的電腦視覺庫。 * OpenCV可用於開發即時的圖像處理、電腦視覺以及圖型識別程式。 **應用領域** OpenCV可用於解決如下領域的問題: * 擴增實境 * 臉部辨識 * 手勢辨識 * 人機互動 * 動作辨識 * 運動跟蹤 * 物體辨識 * 圖像分割 * 機器人 **安裝一下** <!pip install opencv-contrib-python> **opencv對於位置的表達方式** OpenCV用的是top-left corner系統,也就是左上角會是(0,0) 往右移,X會增加,往下移,y會增加。 **opencv對於顏色空間的表達方式** * opencv表達顏色空間是BGR mode 而不是 RGB mode * 如果是png檔案,會多一個透明層,那就是BGRA,A就是透明層 **cv2.imread用兩個參數** 1. 檔案名稱 2. 讀取模式- cv2.IMREAD_COLOR, #預設default值。載入一張彩色圖片,忽視它的透明度。 cv2.IMREAD_GRAYSCALE, #載入一張灰度圖。 cv2.IMREAD_UNCHANGED, #載入影象,包括它的Alpha 通道(Alpha 表示圖片的透明度)。 也可以簡單使用 1,0,-1 代替,效果是相同的。 支援檔案格式包括.bmp, .jpeg, .jpg, .png, .tiff, and .tif ```python= import cv2 img = cv2.imread("lenacolor.png") #imread讀取照片檔名 cv2.imshow("lena",img) #imshow顯示圖片,帶兩個參數,一個是顯示頁的標題,一個是顯示的圖片 cv2.waitKey(0) #要寫這句,不然看不到照片,要按鈕才跳掉,可以設0 cv2.destroyAllWindows() #關掉顯示圖片 ``` ![](https://i.imgur.com/tNMwwWj.png) **有興趣區域(ROI)** 在影像處理過程中,對某一特定區域有興趣,稱 為有興趣區域(Region of Interest,ROI) ```python= import cv2 a=cv2.imread("lenacolor.png",cv2.IMREAD_UNCHANGED) #cv2.IMREAD_UNCHANGED讀取圖片中所有的 channels,包含透明度的 channel face=a[220:400,250:350] #擷取特徵lena的臉 #220:400=>照片的高,250:350=>照片的寬(原點為左上0,0) cv2.imshow("original",a) cv2.imshow("face",face) cv2.waitKey(0) cv2.destroyAllWindows() ``` ![](https://i.imgur.com/cGmcvE9.png) ```python= import cv2 #讀取灰階lena img_gray = cv2.imread('lenacolor.png', cv2.IMREAD_GRAYSCALE) cv2.imshow("lena_gray",img_gray) cv2.waitKey(0) cv2.destroyAllWindows() ``` ![](https://i.imgur.com/L4i55co.png)