import sys
import importlib
import cv2
#注意python2中,直接調用reload(sys),但python3中要import importlib
importlib.reload(sys)
# 獲取訓練好的人臉的參數數據,這里直接從GitHub上使用默認值,注意該xml文檔要放在執行目錄下
face_cascade = cv2.CascadeClassifier('./haarcascades/haarcascade_frontalface_default.xml')
# 讀取圖片
image = cv2.imread('face1.jpg')
#把圖像轉為灰度圖,查了一下原因,是這么說的:
# 減少數據量(比如RGB模式,可以減少到原圖片的1/3),同時可 以去掉一些噪聲信號。
# 先將圖片轉化為灰度圖,然后將這個灰度圖的對比度增高,這樣可以使得圖片本來暗的地方更暗,亮的地方更亮一些。
# 這樣處理以后,圖片就 更容易被算法設別出來了。
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 分類器探測圖片中的人臉
faces = face_cascade.detectMultiScale(
image,
scaleFactor=1.15,
minNeighbors=5,
minSize=(5, 5),
flags=cv2.IMREAD_GRAYSCALE)
print ("發現{0}個人臉!".format(len(faces)))
#faces中的四個量分別為左上角的橫坐標、縱坐標、寬度、長度
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
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
