python openCV呼叫攝像頭進行人臉識別

2021-09-24 01:17:05 字數 1516 閱讀 1651

整個過程很簡單,因為不是自己訓練人臉特徵模型,而是使用的官方的haar分類器(但是這樣的話實測識別不是很準確)。

版本資訊:

python: 3.7

cv2: 4.1.0

1、呼叫電腦攝像頭,並不斷讀取frame

2、對每乙個讀取到的frame,進行灰度處理

3、呼叫官方給出的人臉分類器檔案haarcascade_frontalface_default.xml。(安裝了opencv庫以後可以使用everything工具搜尋這個檔案所在位置。)

4、設定引數並進行分類

5、使用cv2的矩形繪製工具繪製人臉框

6、顯示繪製好框圖的frame

7、設定捕獲到輸入q就退出

8、結束請理操作

雖然列出了這麼多點操作步驟,但實際上**行數很少,只有十來行。

import cv2

cap = cv2.videocapture(0)

while

(true):

# capture frame-by-frame

ret, frame = cap.read(

)# our operations on the frame come here

gray = cv2.cvtcolor(frame, cv2.color_bgr2gray)

xmlfile = r'c:\programdata\anaconda3\lib\site-packages\cv2\data\haarcascade_frontalface_default.xml'

face_cascade = cv2.cascadeclassifier(xmlfile)

faces = face_cascade.detectmultiscale(

gray,

scalefactor=

1.15

, minneighbors=5,

minsize=(5

,5),

)print

("發現個目標!"

.format

(len

(faces)))

for(x, y, w, h)

in faces:

cv2.rectangle(frame,

(x, y)

,(x + w, y + w),(

0,255,0)

,2) cv2.imshow(

"frame"

, frame)

# display the resulting frame

if cv2.waitkey(1)

&0xff

==ord

('q'):

break

# when everything done, release the capture

cap.release(

)cv2.destroyallwindows(

)

android呼叫camera時發生的攝像頭p

通過調整相機的引數 parameters.setpreviewsize來得到解決。對於攝像頭來說,其得到的 是不變的。但是preview預覽看到的卻是變形的。攝像頭得到的一邊都是方形的。我們可以將preview設定為寬和高都是相等的來顯示攝像頭得到的影象,這種影象沒有經過形變,或者形變是寬和高同等變...

Python opencv 呼叫度目攝像頭

一直沒弄懂埠號後的引數1是啥意思,反正網上都是11,我以為是碼流試了一下成功了,但是碼流設定為2時,卻調不通.url rtsp rtsp 賬戶名 密碼 ip位址 埠號 1 未知 cap cv2.videocapture url ret flag,img camera cap.read print r...

python opencv 安裝整理

這兩天比較有空,在公司內想學習一下opencv,又不想安裝vc 所以就那個python看opencv。安裝環境本來很簡單 但是我python是64的 估計也很多 而opencv的安裝要有乙個numpy庫 這個在官網上只有32位的 所以,事情變得複雜起來。網上找了一下,只道有提供64位版的numpy庫...