Modules:
把模块放在一起就变成了一个包或者一个库
在模块内我们可以实现很多功能 比如查找颜色,找到x,y位置等等
在Main Code中,我们调用模块里面的内容
下面进入正题:
重要的函数:
在官网下载haarcascade_frontalface_default.xml 这是检测人脸的数据集
导入具有检测信息的文件:
cv2.CascadeClassifier("haarcascade_frontalface_default.xml的目录文件")
设置检测的多个尺度
.detectMultiScale(img,比例因子,最小领域)
将检测的内容在图片中画出来(这里是矩形框,颜色厚度可自己修改):
for (x,y,w,h) in objects:
cv2.rectangle(imgObjects,(x,y),(x+w,y+h),(255,0,255),2)
开始我们的模块编写:
import cv2
'''
人脸识别模块
'''
def FindObjects(img, objectCascade, scaleF=1.1, k=4):
imgObjects = img.copy()
imgGray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) #将图片灰度化
objects = objectCascade.detectMultiScale(imgGray,scaleF,k)
for (x,y,w,h) in objects:
cv2.rectangle(imgObjects,(x,y),(x+w,y+h),(255,0,255),2)
return imgObjects, objects
'''
我们来调用我们的模块:
def main():
img = cv2.imread("你的图片路径")
img = cv2.resize(img,(600,600))
faceCascade = cv2.CascadeClassifier("你的haarcascade_frontalface_default.xml路径")
imgObjects, objects = findObjects(img,faceCascade)
cv2.imshow("Output",imgObjects)
cv2.waitKey(0)
if __name__ == "__main__":
main()
好的彭于晏真帅