使用國內源來安裝速度更快,參考教程:知乎教程安裝完畢之後,先測試一下opencv是否可以使用,所以可以先輸入一些簡單的**來測試一下。
import cv2
#開啟專案資料夾下面的photo子資料夾下的檔案
img = cv2.imread(r'photo\lena.png'
)cv2.imshow(
"lena"
,img)
cv2.waitkey(
)
然後執行,就可以看到彈出的乙個視窗。
#國際慣例,先開啟
img = cv2.imread(r'photo\lena.png'
)#影象灰度化
gray_img = cv2.cvtcolor(img,cv2.color_bgr2gray)
#匯入已經儲存好人臉資料的檔案來識別人臉
face_img = cv2.cascadeclassifier(r'haarcascade_frontalface_default.xml'
)#這裡scalefactor引數是影象縮小比例,minneighbors是制定目標的重複檢測次數
faces = face_img.detectmultiscale(gray_img,scalefactor=
1.05
,minneighbors=5)
#使用rectangle方法來畫個綠框框
for x,y,w,h in faces:
img = cv2.rectangle(img,
(x,y)
,(x+w,y+h),(
0,255,0)
,3)#顯示
cv2.imshow(
"lena"
,img)
cv2.waitkey(
)完成
#把原先開啟的語句注釋掉,改為使用從攝像頭獲取
#img = cv2.imread(r'photo\lena.png')
#開啟攝像頭。這裡的0是指要開啟的攝像頭,有多個攝像頭可以改為1或者2等等
cap = cv2.videocapture(0)
while
true
:#讀取資訊
ret,img = cap.read(
)#檢測是否有捕獲到幀
if ret ==
true
:#灰度化
gray_img = cv2.cvtcolor(img,cv2.color_bgr2gray)
#人臉檢測
#匯入人臉資料
face_img = cv2.cascadeclassifier(r'first/haarcascade_frontalface_default.xml'
)#把進行處理
faces = face_img.detectmultiscale(gray_img,scalefactor=
1.05
,minneighbors=5)
#判斷是否有獲取到人臉,有則畫個框
iflen
(faces)
>0:
for x,y,w,h in faces:
img = cv2.rectangle(img,
(x,y)
,(x+w,y+h),(
0,255,0)
,3)#輸出
cv2.imshow(
'capture'
,img)
#等待鍵盤輸入,如果輸入為q,則跳出迴圈,結束
if cv2.waitkey(30)
&0xff
==ord
('q'):
break
else
:break
#釋放資源,關閉視窗
cap.release(
)cv2.destroyallwindows(
)
使用 Haar 級聯人臉檢測
haar 級聯概念 在進行影象分類和跟蹤過程中,提取影象的細節很有用,這些細節也被稱為特徵,對於給定的影象,特徵可能會因區域的大小而有所不同,區域大小也可被稱為視窗大小。即使視窗大小不同,僅在尺度上大小不同的影象也應該有相似的特徵。這種特徵集合被稱為級聯。haar 級聯具有尺度不變性。opencv ...
基於haar特徵的Adaboost人臉檢測技術
基於haar特徵的adaboost人臉檢測技術 本文主要是對使用haar adabbost進行人臉檢測的一些原理進行說明,主要是快找工作了,督促自己複習下 一 adaboost演算法原理 adaboost演算法是一種迭代的演算法,對於一組訓練集,通過改變其中每個樣本的分布概率,而得到不同的訓練集si...
1 Haar和Adaboost人臉識別
coding utf 8 import cv2 import numpy as np 載入xml檔案 絕對路徑載入 相對路徑載入會報錯 載入img cv2.imread face.jpg cv2.imshow src img haar特徵計算 灰度化 gray cv2.cvtcolor img,cv...