成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

使用Python + OpenCV來實現臉部和眼睛的檢測

大數據
本篇文章使用Python和OpenCV中的Haar特征分類器對人臉及眼睛進行檢測和追蹤。

[[198752]]

本篇文章使用Python和OpenCV中的Haar特征分類器對人臉及眼睛進行檢測和追蹤。在開始之前,有幾件準備工作要完成。

  • 第一,你需要有一個攝像頭,如果沒有的話也可以使用視頻文件來替代。
  • 第二,需要在python中安裝OpenCV庫。具體的方法是在這里下載相應的wheel(.whl)文件,并使用pip進行安裝。
  • 第三,下載OpenCV中的Haar特征分類器,你可以從Opencv官網下載源程序解壓后獲得Haar特征分類器,也可以直接下載所需的xml文件。

在完成準備工作后,我們開始進行人臉及眼睛的檢測和追蹤工作。首先導入所需使用的庫文件。這里我們只需要使用numpy和cv2兩個庫。

  1. #導入所需庫文件 
  2.  
  3. import numpy as np 
  4.  
  5. import cv2  

加載Haar特征分類器中的面部識別和眼睛識別兩個xml文件。如何你還需要識別更多的元素也在這里一并加載。

  1. #加載面部識別文件(請按文件實際存儲路徑進行調整) 
  2.  
  3. #https://github.com/Itseez/opencv/blob/master/data/haarcascades/haarcascade_frontalface_default.xml 
  4.  
  5. face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml'
  6.  
  7. #加載眼部識別文件(請按文件實際存儲路徑進行調整) 
  8.  
  9. #https://github.com/Itseez/opencv/blob/master/data/haarcascades/haarcascade_eye.xml 
  10.  
  11. eye_cascade = cv2.CascadeClassifier('haarcascade_eye.xml' 

打開你的攝像頭來獲取視頻,到這一步攝像頭開始工作,但還沒有任何影像輸出。如果沒有攝像頭可以使用電腦里的視頻文件進行替代。

  1. #打開攝像頭獲取視頻 
  2. cap = cv2.VideoCapture(0)  

我們同時將對攝像頭獲取的圖像進行保存,這里對視頻文件進行處理并設置保存路徑及視頻尺寸。(這一步不是必須的操作)

  1. #編譯并輸出保存視頻 
  2. fourcc = cv2.VideoWriter_fourcc(*'XVID'
  3. out = cv2.VideoWriter('output.avi',fourcc, 20.0, (640,480))  

開始獲取并處理視頻內容。下面是一個無限的循環結構,通過按鍵q可以結束循環。在這個循環中ret獲取攝像頭是否有返回的布爾值,img獲取攝像頭拍攝的視頻內容。我們首先將攝像頭獲取的彩色圖像轉化為灰度圖像。后續的操作將主要在灰度圖像上完成,然后再使用灰度圖像中的坐標對原始的彩色圖像進行標記和輸出。圖像轉化為灰度后首先進行人臉檢測,然后在人臉檢測的基礎上再進行眼睛檢測,這樣做的原因有兩點,1,避免面部以外的物體被錯誤的識別為眼睛,2,眼睛識別算法需要一些眼睛周圍的面部特征來進行檢測,從而提高準確率。

隨后使用矩形繪制出人臉的位置和眼睛的位置,在設置繪制顏色時需要注意,OpenCV中的顏色值并不是RGB,而是BRG。檢測和繪制完成后對圖像進行輸出。這時可以在視頻窗口中看到被標記的面部和眼睛。由于我們使用的Haar特征分類器是正面面部識別,因此需要正對攝像頭。如果面部發生偏轉則無法識別。

  1. #無限循環 
  2. while(True): 
  3.     #獲取視頻及返回狀態 
  4.     ret, img = cap.read() 
  5.     #將獲取的視頻轉化為灰色 
  6.     gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 
  7.     #檢測視頻中的人臉,并用vector保存人臉的坐標、大?。ㄓ镁匦伪硎荆?nbsp;
  8.     faces = face_cascade.detectMultiScale(gray, 1.3, 5) 
  9.   
  10.     #臉部檢測 
  11.     for (x,y,w,h) in faces: 
  12.         cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2) 
  13.         roi_gray = gray[y:y+h, x:x+w] 
  14.         roi_color = img[y:y+h, x:x+w] 
  15.         #檢測視頻中臉部的眼睛,并用vector保存眼睛的坐標、大?。ㄓ镁匦伪硎荆?nbsp;
  16.         eyes = eye_cascade.detectMultiScale(roi_gray) 
  17.         #眼睛檢測 
  18.         for (ex,ey,ew,eh) in eyes: 
  19.             cv2.rectangle(roi_color,(ex,ey),(ex+ew,ey+eh),(0,255,0),2) 
  20.   
  21.     #顯示原圖像 
  22.     cv2.imshow('img',img) 
  23.     #按q鍵退出while循環 
  24.     if cv2.waitKey(30) & 0xFF == ord('q'): 
  25.         break  

退出while循環后釋放攝像頭,完成視頻輸出并關閉所有窗口。

  1. #釋放攝像頭 
  2. cap.release() 
  3. #關閉視頻輸出 
  4. out.release() 
  5. #關閉所有窗口 
  6. cv2.destroyAllWindows() 

 

 

 

以下是完整的人臉及眼睛檢測代碼:

  1. def face_eye(): 
  2.     import numpy as np 
  3.     import cv2 
  4.   
  5.     face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml'
  6.     eye_cascade = cv2.CascadeClassifier('haarcascade_eye.xml'
  7.   
  8.     cap = cv2.VideoCapture(0) 
  9.     fourcc = cv2.VideoWriter_fourcc(*'XVID'
  10.     out = cv2.VideoWriter('output.avi',fourcc, 20.0, (640,480)) 
  11.   
  12.     while(True): 
  13.         ret, img = cap.read() 
  14.         gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 
  15.         faces = face_cascade.detectMultiScale(gray, 1.3, 5) 
  16.   
  17.         for (x,y,w,h) in faces: 
  18.             cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2) 
  19.             roi_gray = gray[y:y+h, x:x+w] 
  20.             roi_color = img[y:y+h, x:x+w] 
  21.             eyes = eye_cascade.detectMultiScale(roi_gray) 
  22.             for (ex,ey,ew,eh) in eyes: 
  23.                 cv2.rectangle(roi_color,(ex,ey),(ex+ew,ey+eh),(0,255,0),2) 
  24.   
  25.         cv2.imshow('img',img) 
  26.         if cv2.waitKey(30) & 0xFF == ord('q'): 
  27.             break 
  28.     cap.release() 
  29.     out.release() 
  30.     cv2.destroyAllWindows() 
  31.   
  32. face_eye()  

Read more: http://bluewhale.cc/2017-07-28/use-python-and-opencv-to-detect-faces-and-eyes.html#ixzz4o6BB3n4N 

責任編輯:龐桂玉 來源: 36大數據
相關推薦

2024-10-29 16:18:32

YOLOOpenCV

2022-04-05 20:54:21

OpenCVPython人臉檢測

2024-01-29 08:21:59

AndroidOpenCV車牌

2025-02-17 07:00:00

ORB對象跟蹤器計算機視覺

2024-12-23 14:12:41

2022-05-03 09:59:43

網絡釣魚數據集機器學習

2024-01-03 17:32:53

2017-09-22 11:45:10

深度學習OpenCVPython

2023-08-22 16:05:09

Pytorch人臉替換

2018-06-29 10:15:20

PythonOpenCV人臉識別

2021-11-24 08:41:52

BufferedWriJavaBufferedRea

2020-10-12 09:22:30

PythonCNN檢測

2022-06-28 13:41:07

瀏覽網頁互聯網交互Python

2023-01-29 14:29:59

Python識別車牌

2018-05-08 14:25:22

Pythondlib人臉檢測

2015-09-07 11:49:30

CaliseRedshiftLinux

2024-01-07 16:56:59

Python人工智能神經網絡

2011-03-16 09:05:29

iptablesNAT

2022-09-21 23:34:16

點云Python地面檢測

2025-02-10 12:00:00

圖像分類OpenCVPython
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美精品 在线观看 | 欧美精品一区二区三区四区五区 | 精品国产一区二区三区久久狼黑人 | 天天综合久久 | 特黄色毛片 | 国产午夜精品理论片a大结局 | 色在线免费视频 | 精品国产乱码久久久久久88av | 欧洲一级黄 | 精品国产视频在线观看 | jizz18国产 | 成人在线一区二区 | 综合五月 | 国产一区中文字幕 | 国产精品久久久久久久久久久久冷 | 国产成人精品久久 | 国产一区二区三区四区在线观看 | 欧美精品国产精品 | 国产成人久久精品一区二区三区 | 中国大陆高清aⅴ毛片 | 成人久久18免费网站 | 国产亚洲精品综合一区 | 久久精品视频在线免费观看 | 羞羞的视频免费在线观看 | 古装人性做爰av网站 | 亚洲高清久久 | 久久精品无码一区二区三区 | 成人免费一区二区三区视频网站 | 日日做夜夜爽毛片麻豆 | 99热在线观看精品 | 户外露出一区二区三区 | 免费观看一级黄色录像 | 华人黄网站大全 | 久久蜜桃精品 | 日韩理论电影在线观看 | 91精品一区二区三区久久久久 | 一区在线观看 | 亚洲高清视频在线观看 | 欧美日韩91 | a在线观看| 视频一区中文字幕 |