视频人脸检测——OpenCV版(三)
生活随笔
收集整理的這篇文章主要介紹了
视频人脸检测——OpenCV版(三)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
視頻人臉檢測是圖片人臉檢測的高級版本,圖片檢測詳情點擊查看我的上一篇《圖片人臉檢測——OpenCV版(二)》?
實現思路:
調用電腦的攝像頭,把攝像的信息逐幀分解成圖片,基于圖片檢測標識出人臉的位置,把處理的圖片逐幀繪制給用戶,用戶看到的效果就是視頻的人臉檢測。
效果預覽:
實現步驟
使用OpenCV調用攝像頭并展示
獲取攝像頭:
cap = cv2.VideoCapture(0)參數0表示,獲取第一個攝像頭。
顯示攝像頭?逐幀顯示,代碼如下:
while (1): ret, img = cap.read()cv2.imshow("Image", img)if cv2.waitKey(1) & 0xFF == ord('q'):break cap.release() # 釋放攝像頭 cv2.destroyAllWindows() # 釋放窗口資源cv2.waitKey(1) & 0xFF使用了“&”位元算法,含義是獲取用戶輸入的最后一個字符的ASCII碼,如果輸入的是“q”,則跳出循環。
視頻的人臉識別
這個時候,用到了上一節的《圖片人臉檢測——OpenCV版(二)》?把人臉識別的代碼封裝成方法,代碼如下:
def discern(img):gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)cap = cv2.CascadeClassifier("C:\Python36\Lib\site-packages\opencv-master\data\haarcascades\haarcascade_frontalface_default.xml")faceRects = cap.detectMultiScale(gray, scaleFactor=1.2, minNeighbors=3, minSize=(50, 50))if len(faceRects):for faceRect in faceRects:x, y, w, h = faceRectcv2.rectangle(img, (x, y), (x + h, y + w), (0, 255, 0), 2) # 框出人臉cv2.imshow("Image", img)?再循環攝像頭幀圖片的時候,調用圖片識別方法即可,代碼如下:
# 獲取攝像頭0表示第一個攝像頭 cap = cv2.VideoCapture(0) while (1): # 逐幀顯示ret, img = cap.read()# cv2.imshow("Image", img)discern(img)if cv2.waitKey(1) & 0xFF == ord('q'):break cap.release() # 釋放攝像頭 cv2.destroyAllWindows() # 釋放窗口資源
完整的代碼如下:
# -*- coding:utf-8 -*- # OpenCV版本的視頻檢測 import cv2# 圖片識別方法封裝 def discern(img):gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)cap = cv2.CascadeClassifier("C:\Python36\Lib\site-packages\opencv-master\data\haarcascades\haarcascade_frontalface_default.xml")faceRects = cap.detectMultiScale(gray, scaleFactor=1.2, minNeighbors=3, minSize=(50, 50))if len(faceRects):for faceRect in faceRects:x, y, w, h = faceRectcv2.rectangle(img, (x, y), (x + h, y + w), (0, 255, 0), 2) # 框出人臉cv2.imshow("Image", img)# 獲取攝像頭0表示第一個攝像頭 cap = cv2.VideoCapture(0) while (1): # 逐幀顯示ret, img = cap.read()# cv2.imshow("Image", img)discern(img)if cv2.waitKey(1) & 0xFF == ord('q'):break cap.release() # 釋放攝像頭 cv2.destroyAllWindows() # 釋放窗口資源?
?
往期目錄
視頻人臉檢測——Dlib版(六)
OpenCV添加中文(五)
圖片人臉檢測——Dlib版(四)
視頻人臉檢測——OpenCV版(三)
圖片人臉檢測——OpenCV版(二)
OpenCV環境搭建(一)
更多更新,歡迎訪問我的github:https://github.com/vipstone/faceai
總結
以上是生活随笔為你收集整理的视频人脸检测——OpenCV版(三)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 记一次阿里巴巴一面的经历
- 下一篇: 附录:更多有序集合操作命令