最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
python基于dlib库的人脸检测如何实现 python基于dlib库的人脸检测实现代码
时间:2019-11-08 编辑:袖梨 来源:一聚教程网
本篇文章小编给大家分享一下python基于dlib库的人脸检测实现代码,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看。
下载dlib-19.8.1-cp36-cp36m-win_amd64.whl然后cd到相应的目录下pip install dlib-19.8.1-cp36-cp36m-win_amd64.whl
代码
import dlib import cv2 import os def resize(img, width=None, height=None, inter=cv2.INTER_AREA): """ initialize the dimensions of the input image and obtain the image size """ dim = None (h, w) = img.shape[:2] if width is None and height is None: return img if width is None: r = height / float(h) dim = (int(w * r), height) else: r = width / float(w) dim = (width, int(h * r)) # resize the image resized = cv2.resize(img, dim, interpolation=inter) # return the resized image return resized # 使用 Dlib 的正面人脸检测器 frontal_face_detector detector = dlib.get_frontal_face_detector() # 图片所在路径 imgs_path = 'test/' filelist = os.listdir(imgs_path) # 使用 detector 检测器来检测图像中的人脸 for img_path in filelist: img = cv2.imread(imgs_path + img_path) img = resize(img, ) faces = detector(img, 1) print("人脸数 / Faces in all: ", len(faces)) for i, d in enumerate(faces): w = d.right() - d.left() h = d.bottom() - d.top() d_left = int(d.left() - w * 0.25) d_right = int(d.right() + w * 0.25) d_top = int(d.top() - w * 0.70) d_bottom = int(d.bottom() + w * 0.2) print("第", i + 1, "个人脸的矩形框坐标:", "left:", d_left, "right:", d_right, "top:", d_top, "bottom:", d_bottom) cv2.rectangle(img, tuple([d_left, d_top]), tuple([d_right, d_bottom]), (0, 255, 255), 2) cv2.imshow("img", img) cv2.waitKey(0) cv2.imwrite('./result.jpg',img)
随便网上找了张图测试,效果如下
相关文章
- Golang ProtoBuf的基本语法详解 10-20
- Python识别MySQL中的冗余索引解析 10-20
- Python+Pygame绘制小球代码展示 10-18
- Python中的数据精度问题介绍 10-18
- Python随机值生成的常用方法介绍 10-18
- python3解压缩.gz文件分析 09-27