思想就是找出68个特征点,根据特征点的标注位置,把最外层的一圈给圈起来,面具可以自己改颜色。
在代码里特征点序号要减一。从0开始。
也就是0到26。

import cv2
import dlib
import numpy as np
import os
import imutilscolor_black = (0, 0, 0)#面具颜色,这里是全黑img= cv2.imread('test_pic/00009.jpg')
img = imutils.resize(img, width = 500)#改变大小img1= img.copy()#为了后面显示图像用的gray=cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)#转为灰度图detector = dlib.get_frontal_face_detector()"""
在灰度图像中检测人脸并创建一个对象-存储边界矩形的坐标列表
第二个参数中的“1”表示应该向上采样图像1次。
这会使图像变得更大,并允许我们检测更多的面孔
"""faces = detector(gray, 1)# 打印边界矩形的坐标
print(faces)
print("Number of faces detected: ", len(faces))# 文件路径
p = "shape_predictor_68_face_landmarks.dat"
# 初始化dlib的预测器
predictor = dlib.shape_predictor(p)for face in faces:landmarks = predictor(gray, face)points = []for i in range(0, 17):point = [landmarks.part(i).x, landmarks.part(i).y]points.append(point)# print(points)mask_c = []for i in range(26,17,-1):point = [landmarks.part(i).x, landmarks.part(i).y]mask_c.append(point)fmask_c = points + mask_c#根据68个特征点的分布来的fmask_c = np.array(fmask_c, dtype=np.int32)#类型转换img2 = cv2.polylines(img, [fmask_c], True, color_black, thickness=2, lineType=cv2.LINE_8)# 使用Python OpenCV - cv2.fillPoly()方法填充口罩# 更改参数[mask_type]和color_type用于各种组合img3 = cv2.fillPoly(img2, [fmask_c], color_black, lineType=cv2.LINE_AA)# cv2.imshow("image with mask outline", img2)
cv2.imshow("image with mask", img3)
cv2.imshow('img',img1)# 为测试保存输出文件
outputNameofImage = "fianl5.jpg"
print("Saving output image to", outputNameofImage)
cv2.imwrite(outputNameofImage, img3)
cv2.waitKey(0)
cv2.destroyAllWindows()

结果图:

原图、灰度图、加面具的图。

使用dlib给人脸戴面具相关推荐

  1. 【机器学习】 - 使用dlib进行人脸定位,人脸检测,给人脸图片戴口罩

    detector = dlib.get_frontal_face_detector() 功能:人脸检测画框 参数:无 返回值:默认的人脸检测器 faces = detector(img_gray, 0 ...

  2. 基于Haar级联的人脸识别以及给人戴面具的操作

    基于Haar级联的人脸识别以及给人戴面具的操作 1.总体步骤 2.效果展示 3.完整代码及相关资源下载 1.总体步骤 载入人脸的haar特征(.xml文件) 载入面具 读取帧图像 利用detectMu ...

  3. 实战:使用OpenCV+Python+dlib为人脸生成口罩

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达本文转自|AI算法与图像处理 本文使用OpenCV dlib库生成口 ...

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

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

  5. Python 自动给人脸 戴口罩

    这个开源项目可以自动给人脸戴口罩,不过是完整的口罩. https://github.com/jacke121/MaskTheFace 效果图: 下面是网上搜到的方法: 检测人脸关键点 引入包 dlib ...

  6. 面部表情识别java_使用Python+OpenCV+dlib为人脸生成口罩

    来源:深度学习与计算机视觉 本文约4800字,建议阅读6分钟本文试图用OpenCV和dlib库来实现这个过程,在这里我们综合生成5种类型的口罩来绘制人脸图像. 本文使用OpenCV dlib库生成口罩 ...

  7. Python 3 利用 Dlib 实现人脸检测和剪切

    0. 引言 利用 Python 开发,借助 Dlib 库进行人脸检测 / face detection 和剪切:   1. crop_faces_show.py : 将检测到的人脸剪切下来,依次排序平 ...

  8. python人脸识别毕业设计-Python基于Dlib的人脸识别系统的实现

    之前已经介绍过人脸识别的基础概念,以及基于opencv的实现方式,今天,我们使用dlib来提取128维的人脸嵌入,并使用k临近值方法来实现人脸识别. 人脸识别系统的实现流程与之前是一样的,只是这里我们 ...

  9. dlib做人脸检测判断有没有检测到人脸

    dlib做人脸检测判断有没有检测到人脸 文章目录: 一.人脸检测 二.判断有没有检测到人脸 其实我用dlib 检测人脸只是用来做个触发条件,但是我不知道怎么判断有没有检测到人,因为从返回值只知道是一个 ...

最新文章

  1. 基于MATLAB的MIMO系统分层空时码的仿真
  2. oracle中有类似split的方法么,ORACLE中字符串split的一种方法
  3. 系统安装重装与优化:chapter7 操作系统的修复与重装
  4. 基于javaweb的黑马旅游网站来源_喜讯丨创业黑马(重庆)科技孵化中心今日开业!助力重庆高新区打造人工智能创新高地...
  5. 谈谈对水晶报表的看法
  6. 验1-8 输出倒三角图案 (5 分)
  7. 运用C#在采集时进行自动验证登录[转]
  8. v-if与v-show
  9. [sql面试经验] 经典sql面试题及答案第3期
  10. 墨者Apache Struts2远程代码执行漏洞(S2-009)复现题解
  11. Vue 移动端实现调用相机扫描二维码或条形码
  12. 网秦创始人林宇称遭史文勇非法拘禁 后者称是恶意中伤
  13. luogu P2852 [USACO06DEC]牛奶模式Milk Patterns
  14. VC界面库Xtreme Toolkit Pro全新发布v22.1——支持VS 2022主题
  15. 推荐 5 款数据库性能监控软件,附下载
  16. WRF模式中关于eta_levels的设置以及对应的高度
  17. cad连筋字体怎么安装_cad怎么调整标注文字大小-AutoCAD调整标注字体大小的方法...
  18. USB运动控制 (五轴雕刻机系统)全部开源
  19. 易语言系列————————窗口_枚举所有子窗口(精易模块)
  20. vue项目中下载文档的一种方式

热门文章

  1. 骨传导耳机哪个牌子最好,适合运动的骨传导耳机推荐
  2. 企业信用调查报告和企业信用评级报告
  3. [项目管理-24]:非暴力沟通的本质就是:”用大家都舒服的方式解决问题“
  4. 关于2023中国(济南)国际换热传热技术与应用展览会通知
  5. 专科计算机专业学费多少,计算机及应用的自考学费是多少
  6. x264源码分析--overscan
  7. 魅蓝note3联通卡显示无服务器,魅蓝note3用什么SIM卡?魅蓝note3手机SIM卡类型
  8. 贝医生创始人章骏:做出更适合于中国人的牙刷
  9. Android 热缓解框架解析
  10. 全国青少年软件编程(Scratch)等级考试二级考试真题2022年9月——持续更新.....