基本功能都是现成的包,安装后导入就可以用了
暂时还没有深入去看, 以后有时间吧…
怎么安装大家可以搜一搜挺多的, 好像 pip install opencv-contrib-python 就可以
我记得我那会就是这么装的…忘记了
直接代码吧
import cv2
# 图像路径 我用的相对路径
filepath = 'test.jpg'
# 读取文件
faceImg = cv2.imread(filepath)
# 转换灰色
gray = cv2.cvtColor(faceImg,cv2.COLOR_BGR2GRAY)
# 加载人脸识别分类器
# 官方已有的分类器 https://github.com/opencv/opencv/tree/master/data/haarcascades
# github的不好下载, 可以从码云上找
# Python\Python38-32\Lib\site-packages\cv2\data 这个目录下也有
classifier = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
color = (0,255,0)
# 识别器进行识别
faceRects = classifier.detectMultiScale(gray,scaleFactor=1.2,minNeighbors=3,minSize=(32, 32))
# 识别器返回一个列表, 里面是每个识别出的人脸的区域, 左上和右下定点的坐标
# print(faceRects) #[[113 42 60 60]] 前两个值是左上定点的xy坐标,第三个是width 宽度对应y的变化, 另一个就是x的
# 判断识别结果集合长度
if len(faceRects):
for faceRect in faceRects:
x,y,w,h = faceRect
# 框选出人脸 最后一个参数2是框线宽度
cv2.rectangle(faceImg,(x, y), (x + h, y + w), color, 2)
# 显示图像
cv2.imshow("faceImg",faceImg)
# cv2.waitKey顾名思义等待键盘输入,单位为毫秒,即等待指定的毫秒数看是否有键盘输入,
# 若在等待时间内按下任意键则返回按键的ASCII码,程序继续运行。若没有按下任何键,超时后返回-1。
# 参数为0表示无限等待。不调用waitKey的话,窗口会一闪而逝,看不到显示的图片。
cv2.waitKey(0)
结果: