haar级联分类器--人脸检测和匹配
生活随笔
收集整理的這篇文章主要介紹了
haar级联分类器--人脸检测和匹配
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
分類(lèi)器鏈接,https://download.csdn.net/download/fanzonghao/10582586
代碼:
import numpy as np import cv2# 實(shí)例化人臉?lè)诸?lèi)器 face_cascade = cv2.CascadeClassifier('./haarcascades/haarcascade_frontalface_default.xml') # 實(shí)例化眼睛分類(lèi)器 eye_cascade = cv2.CascadeClassifier('./haarcascades/haarcascade_eye.xml') # 讀取測(cè)試圖片 img = cv2.imread('faces.jpg',cv2.IMREAD_COLOR) # 將原彩色圖轉(zhuǎn)換成灰度圖 gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 開(kāi)始在灰度圖上檢測(cè)人臉,輸出是人臉區(qū)域的外接矩形框 faces = face_cascade.detectMultiScale(gray, 1.2, 8) # 遍歷人臉檢測(cè)結(jié)果 for (x,y,w,h) in faces:# 在原彩色圖上畫(huà)人臉矩形框cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)# 獲取該人臉矩形框的感興趣區(qū)域RoI, 淺復(fù)制roi_gray = gray[y:y+h, x:x+w]roi_color = img[y:y+h, x:x+w]# 開(kāi)始在人臉區(qū)域中檢測(cè)眼睛,輸出是眼睛區(qū)域的外接矩形框eyes = eye_cascade.detectMultiScale(roi_gray)# 遍歷眼睛檢測(cè)結(jié)構(gòu)for (ex,ey,ew,eh) in eyes:# 在原彩色圖上畫(huà)眼睛矩形框cv2.rectangle(roi_color,(ex,ey),(ex+ew,ey+eh),(0,255,0),2) # 顯示畫(huà)好矩形框的圖片 cv2.namedWindow('faces', cv2.WINDOW_AUTOSIZE) cv2.imshow('faces',img) # 等待退出鍵 cv2.waitKey(0) # 銷(xiāo)毀顯示窗口 cv2.destroyAllWindows()模板檢測(cè):
import cv2 import numpy as np# 讀取圖片,彩色模式 img_color = cv2.imread('faces.jpg',cv2.IMREAD_COLOR) # 讀取圖片,灰度模式 img_gray = cv2.imread('faces.jpg',cv2.IMREAD_GRAYSCALE) # 讀取人臉模板圖片,灰度模式 template = cv2.imread('face_template1.jpg',cv2.IMREAD_GRAYSCALE) # 獲取模板尺寸 w, h = template.shape[::-1] # 模板匹配方法數(shù)組 methods = ['cv2.TM_CCOEFF', 'cv2.TM_CCOEFF_NORMED', 'cv2.TM_CCORR', 'cv2.TM_CCORR_NORMED', 'cv2.TM_SQDIFF', 'cv2.TM_SQDIFF_NORMED'] # 遍歷匹配方法 for meth in methods:# 拷貝圖片img_color2 = img_color.copy()img_gray2 = img_gray.copy()# 把字符串轉(zhuǎn)換成代碼method = eval(meth)# 模板匹配res = cv2.matchTemplate(img_gray2,template,method)# 獲取匹配結(jié)果的最大、最小值,及其位置min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res)# TM_SQDIFF 和 TM_SQDIFF_NORMED匹配方法:值越小,越相似if method in [cv2.TM_SQDIFF, cv2.TM_SQDIFF_NORMED]:# 取最小值位置,作為矩形框左上角位置top_left = min_locelse:# 取最大值位置,作為矩形框左上角位置top_left = max_loc# 根據(jù)模板尺寸計(jì)算出:矩形框右下角位置bottom_right = (top_left[0] + w, top_left[1] + h)# 畫(huà)矩形框cv2.rectangle(img_color2,top_left, bottom_right, 255, 2)# 顯示畫(huà)好矩形框的圖片cv2.namedWindow(meth, cv2.WINDOW_AUTOSIZE)cv2.imshow(meth,img_color2)# 等待退出鍵cv2.waitKey(0) # 銷(xiāo)毀顯示窗口 cv2.destroyAllWindows() 創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的haar级联分类器--人脸检测和匹配的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: C++多态面试题汇总
- 下一篇: 利用Inception-V3训练的权重微