---
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()
```
輸出結果



還是有許多誤判的地方
調整 scaleFactor=1.3(另一張無效)
