--- tags: Others --- # Opencv in python 在 visual studio python packages 內: pip install opencv-python 輸出目前安裝版本 ```= import cv2 cv2.__version__ ``` --- ## 讀取 jpg 檔案 ```= img=cv2.imread('people.jpg') cv2.imshow('Titile',img) cv2.waitKey(0) #wait until key pressed cv2.destroyAllWindows() ``` --- ## 打開鏡頭 ```= cap=cv2.VideoCapture(0) while(True): ret,frame=cap.read() #if get frame rte=true cv2.imshow('frame',frame) if cv2.waitKey(5)==ord('q'): break cap.release() cv2.destroyAllWindows() ``` 按按鍵擷取圖檔 ```= cap=cv2.VideoCapture(0) while(True): ret,frame=cap.read() #if get frame rte=true cv2.imshow('frame',frame) if cv2.waitKey(5)==ord('q'): cv2.imwrite('test.jpg',frame) break cap.release() cv2.destroyAllWindows() ``` ## 人臉辨識 detectMultiScale: - scaleFactor:參數指定每個圖像比例縮小多少圖像 - minNeighbors:參數指定每個候選矩形必須保留多少個鄰居,該參數將影響檢測到的面部的質量.較高的值導致較少的檢測,但具有較高的質量. 3~6 是一個很好的價值 - minSize:可能的最小物體尺寸 ```= face_cascade=cv2.CascadeClassifier('haarcascade_frontalface_default.xml') img=cv2.imread('people.jpg') gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) #偵測臉部 faces=face_cascade.detectMultiScale(gray,scaleFactor=1.08,minNeighbors=5,minSize=(32,32)) #繪製人臉部分方框 for(x,y,w,h) in faces: cv2.rectangle(img,(x,y),(x+w,y+h),(0,255,0),2) cv2.namedWindow('img',cv2.WINDOW_NORMAL) cv2.imshow('img',img) cv2.waitKey(0) cv2.destroyAllWindows() ``` 輸出結果 ![](https://i.imgur.com/4p2hHwW.jpg) ![](https://i.imgur.com/O4DFBqx.png) ![](https://i.imgur.com/ueZsRCu.png) 還是有許多誤判的地方 調整 scaleFactor=1.3(另一張無效) ![](https://i.imgur.com/SnvTRNs.png)