opencv 人臉檢測 python代碼

 實現功能:給定一張圖片,尋找圖中的人臉,並用矩形框標記,按下Esc鍵,關閉所有窗口

# !/user/bin/env python
# -☆- coding:utf-8 -☆-
# author:lishan time:2020/6/30
import cv2
# 讀取圖片
# demo.jpg爲圖片名,自己修改
image = cv2.imread('demo.jpg')
# 顯示圖片
cv2.imshow('orignal', image)
# 轉換爲灰度圖像
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 加載haar檢測器
faceCascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
# 人臉檢測
faces = faceCascade.detectMultiScale(
    # 待檢測圖像
    gray,
    # 縮放因子
    scaleFactor=1.15,
    # 同一人臉的最小檢測標記個數
    minNeighbors=2,
    # 目標最小檢測尺寸大小
    minSize=(5, 5)
)
# 打印人臉位置座標
# print(faces)
# 打印人臉個數
print('發現{0}個人臉!'.format(len(faces)))
# 標記人臉
for (x, y, w, h) in faces:
    # 矩形標註
    cv2.rectangle(image, (x, y), (x+w, y+h), (0, 255, 0), 0)
# 顯示檢測結果
cv2.imshow('detect', image)
while True:
    key = cv2.waitKey(1)
    # 按下Esc鍵退出
    if int(key) == 27:
        break
# 銷燬所有窗口
cv2.destroyAllWindows()

 檢測效果如下:

參考書籍:李立宗著. OpenCV輕鬆入門 面向Python[M]. 北京:電子工業出版社, 2019.05.

代碼來源:在書中第23章第一節中的代碼

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章