import sys
import importlib
import cv2
#注意python2中,直接調(diào)用reload(sys),但python3中要import importlib
importlib.reload(sys)
# 獲取訓(xùn)練好的人臉的參數(shù)數(shù)據(jù),這里直接從GitHub上使用默認(rèn)值,注意該xml文檔要放在執(zhí)行目錄下
face_cascade = cv2.CascadeClassifier('./haarcascades/haarcascade_frontalface_default.xml')
# 讀取圖片
image = cv2.imread('face1.jpg')
#把圖像轉(zhuǎn)為灰度圖,查了一下原因,是這么說(shuō)的:
# 減少數(shù)據(jù)量(比如RGB模式,可以減少到原圖片的1/3),同時(shí)可 以去掉一些噪聲信號(hào)。
# 先將圖片轉(zhuǎn)化為灰度圖,然后將這個(gè)灰度圖的對(duì)比度增高,這樣可以使得圖片本來(lái)暗的地方更暗,亮的地方更亮一些。
# 這樣處理以后,圖片就 更容易被算法設(shè)別出來(lái)了。
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 分類器探測(cè)圖片中的人臉
faces = face_cascade.detectMultiScale(
image,
scaleFactor=1.15,
minNeighbors=5,
minSize=(5, 5),
flags=cv2.IMREAD_GRAYSCALE)
print ("發(fā)現(xiàn){0}個(gè)人臉!".format(len(faces)))
#faces中的四個(gè)量分別為左上角的橫坐標(biāo)、縱坐標(biāo)、寬度、長(zhǎng)度
for x, y, w, h in faces:
img = cv2.rectangle(image,(x,y),(x+w,y+h),(255,0,0),2)
cv2.circle(image, ((x + x + w) // 2, (y + y + h) // 2),(w // 2), (0, 255, 0),2)
print(x,y,w,h)
cv2.imshow("Find Faces!", image)
cv2.waitKey(0)
下載.xml文件地址:https://blog.csdn.net/AinUser/article/details/100730262
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061
微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元

