opencv中已经自带有训练好的模型来供我们进行人脸检测,但如果你想精度更高的话,你也可以训练自己的opencv分类器,下面只写如何使用训练好的模型。
基本思路非常简单,先把模型加载进来,然后以灰度模式读取图片(这里如果使用BGR的话像素点太多 会导致出错),接下来就是使用已经训练好的模型,你也可以改变矩形框的大小,最后输出图片,下面给出代码。
import cv2
classfier=cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
classfier.load('C:/haar/haarcascade_frontalface_default.xml')
img = cv2.imread('test5.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
faces = classfier.detectMultiScale(gray, 1.3, 2)
for (x,y,w,h) in faces:
cv2.rectangle(img,(x,y),(x+w,y+h),(255,0,0),2)
cv2.imshow('image',img)
cv2.waitKey(0)
cv2.destroyAllWindows()
贴一张照片,最喜欢的周星驰。
ZXC.jpg
请多多指教!
网友评论