dlib实现,需要shape_predictor_68_face_landmarks.dat模型


    # 读帧videoCapture = cv2.VideoCapture(videoName)date = time.strftime("%Y-%m-%d %H:%M:%S")# 计数i = 0print('{} save image start'.format(videoName))while True:success, img = videoCapture.read()try:if success:i = i + 1# save_image(img, savePath + "_" + str(i))# 旋转图片if angle > 0:img = imutils.rotate_bound(img, angle)gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)dets = detector(gray, 1)for face in dets:shape = predictor(img, face)chang = []kuan = []# 遍历所有点,打印出其坐标,并圈出来for pt in shape.parts():chang.append(pt.x)kuan.append(pt.y)# 调节人像大小x1, x2 = max(chang) + 60, min(chang) - 65minSize = min(kuan)y1, y2 = max(kuan) + 100, minSize - (minSize - 20)cropped = img[y2 + 1:y1, x2 + 1:x1]cropped = cv2.resize(cropped, (IMAGE_SIZE, IMAGE_SIZE), cv2.INTER_CUBIC)cv2.imwrite(savePath + "_" + str(i) + '.jpg', cropped)print(date + " "+ savePath + "_" + str(i) + '.jpg')else:print('{} {} total {} images'.format(date, videoName, i))print('{} {} image save end'.format(date, videoName))breakexcept Exception as e:continuevideoCapture.release()cv2.destroyAllWindows()

更新:截取图片人脸dilb实现


import cv2
import dlibpath = "./data/iphone2.jpg"
img = cv2.imread(path)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)#人脸分类器
detector = dlib.get_frontal_face_detector()
# 获取人脸检测器
predictor = dlib.shape_predictor("./model/shape_predictor_68_face_landmarks.dat"
)
color = (0, 255, 0) # 定义绘制颜色dets = detector(gray, 1)
for face in dets:shape = predictor(img, face) # 寻找人脸的68个标定点chang = []kuan = []for pt in shape.parts():chang.append(pt.x)kuan.append(pt.y)# 调节人像大小x1, x2 = max(chang), min(chang)y1, y2 = max(kuan), min(kuan)cropped = img[y2 + 1:y1, x2 + 1:x1]# cv2.circle(img, (x2, y2), 1, (255, 0, 0), thickness=5)# cv2.circle(img, (x1, y1), 1, (255, 0, 0), thickness=5)# cv2.rectangle(img, (x2, y2), (x1, y1), color, 1)# cropped = img[0:x1, 0:x1] # 裁剪坐标为[y0:y1, x0:x1]cropped = img[y2:y1, x2:x1]# print(cropped.shape)cv2.imshow("image", cropped)k = cv2.waitKey(0)if k == ord("s"):cv2.imwrite("./data/test1.png", cropped)
cv2.destroyAllWindows()

opencv实现抠图,需要haarcascade_frontalface_alt2.xml模型


    cap = cv2.VideoCapture(path)classfier = cv2.CascadeClassifier("./model/haarcascade_frontalface_alt2.xml")suc = cap.isOpened()  # 是否成功打开frame_count = 0out_count = 0while suc:frame_count += 1if out_count > 5:  # 最多取出多少张breaksuc, frame = cap.read()  # 读取一帧# grey = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)faceRects = classfier.detectMultiScale(frame, scaleFactor=1.2, minNeighbors=3, minSize=(32, 32))  # 读取脸部位置if len(faceRects) > 0:  # 大于0则检测到人脸for faceRect in faceRects:  # 单独框出每一张人脸x, y, w, h = faceRectimage = frame[y - 10: y + h + 10, x - 10: x + w + 10]# image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)  # 转为灰度图img_new = cv2.resize(image, (64, 64), interpolation=cv2.INTER_CUBIC)  # 处理面部的大小cv2.imwrite('./data/%d.jpg' % out_count, img_new,[95])  # 存储到指定目录out_count += 1print('成功提取的第%d个脸部' % out_count)break  # 每帧只获取一张脸,删除这个即为读出全部面部cap.release()cv2.destroyAllWindows()

python opencv和dlib抠人像实现相关推荐

  1. python人像和图片比对_python 使用OpenCV进行简单的人像分割与合成

    实现思路 通过背景建模的方法,对源图像中的动态人物前景进行分割,再将目标图像作为背景,进行合成操作,获得一个可用的合成影像. 实现步骤如下. 使用BackgroundSubtractorMOG2进行背 ...

  2. python人像精细分割_python 使用OpenCV进行简单的人像分割与合成

    实现思路 通过背景建模的方法,对源图像中的动态人物前景进行分割,再将目标图像作为背景,进行合成操作,获得一个可用的合成影像. 实现步骤如下. 使用BackgroundSubtractorMOG2进行背 ...

  3. python人像_python 使用OpenCV进行简单的人像分割与合成

    实现思路 通过背景建模的方法,对源图像中的动态人物前景进行分割,再将目标图像作为背景,进行合成操作,获得一个可用的合成影像. 实现步骤如下. 使用BackgroundSubtractorMOG2进行背 ...

  4. 使用Python,OpenCV,dlib进行睡意检测(疲劳驾驶检测)

    使用Python,OpenCV,dlib进行睡意检测,可以看做是对上一篇博客眨眼检测的进阶. 使用Python,OpenCV,dlib进行睡意检测 1. 睡意检测依赖及原理 依赖面部检测,面部标志检测 ...

  5. 使用Python+OpenCV+dlib为人脸生成口罩

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达推荐阅读 42个pycharm使用技巧,瞬间从黑铁变王者Google ...

  6. python dlib人脸检测_使用Python+OpenCV+Dlib实现人脸检测与人脸特征关键点识别

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 今天,我们将学习如何检测图像中的人脸并提取面部特征,如眼睛.鼻子. ...

  7. python+opencv+dlib实现人脸检测与表情识别

    python+opencv+dlib实现人脸检测与表情识别 一,dlib简单介绍:Dlib包含广泛的机器学习算法.所有的设计都是高度模块化的,快速执行,并且通过一个干净而现代的C ++ API,使用起 ...

  8. 使用Python+OpenCV+Dlib实现人脸检测与人脸特征关键点识别

    今天,我们将学习如何检测图像中的人脸并提取面部特征,如眼睛.鼻子.嘴巴等.我们可以将这些信息作为一个预处理步骤来完成,例如捕捉照片中人物的人脸(手动或通过机器学习),创建效果来"增强&quo ...

  9. Python+OpenCV+dlib汽车驾驶员疲劳驾驶检测

    点击查看:Python+OpenCV+dlib汽车驾驶员疲劳驾驶检测 文件大小:80M 操作系统:Windows10旗舰版 开发工具:Python3.8.OpenCV4.5.dlib 开发语言:.py ...

最新文章

  1. python3 deque(双向队列)
  2. javaaop模式供其他项目调用_Java 分布式架构的 开源的支付项目 调试实战
  3. 爱的十个秘密--2.思想的力量
  4. kubernetes 集群部署
  5. docker安装与学习
  6. Go -- log4go日志
  7. 360公司2019秋招空中宣讲会开启,送海量面试直通卡!
  8. c语言程序可以单独编译,c语言的函数能单独进行编译吗?
  9. iframe 禁止打开新窗口_打开新窗口的安全和性能问题
  10. 应用HTK搭建语音拨号系统2:创建单音素HMM模型
  11. 简谈PCB设计软件对比
  12. 手机4g网速测试用什么软件,测手机4g网速(4g手机上网速度测试)
  13. 解决windows server 2003安装dhcp服务器的问题
  14. bindiff 太慢,两小时没结果
  15. confusion_matrix
  16. clojure 开发工具_Clojure Web开发–最新技术–第2部分
  17. 中文翻译泰文难吗?如何做好泰文翻译?
  18. Flutter Icons图标库地址
  19. DRE Viewset(视图集)的使用
  20. 【参赛作品15】openGauss数据库维护管理

热门文章

  1. Python-OpenCV 从文件夹中批量读取图片
  2. pandas 用某一列的值替换另一列的空缺值
  3. 矩阵论笔记(三)——欧氏空间与正交变换
  4. [附源码]java毕业设计流浪动物救助系统
  5. 阿帕奇POI EXCEL解析
  6. 最全的JAVA面试题网站
  7. JDK的下载安装、系统环境部署、Java源文件创建和调试
  8. Aspose.words 设置页眉
  9. 对象/关系数据库映射(ORM)
  10. 2048游戏代码,可以玩下游戏