当前位置: 首页 > wzjs >正文

青岛网站开发招聘上海市基础工程公司

青岛网站开发招聘,上海市基础工程公司,网站建设摊销几年,用flash做的网站展示在实际项目中,尤其是涉及人脸识别、换脸、图像修复等任务时,我们经常需要生成人脸区域的掩膜(mask)。这篇文章分享一个简单易用的小工具,利用 MediaPipe 和 OpenCV,快速提取人脸轮廓并生成二值掩膜图像。 …

在实际项目中,尤其是涉及人脸识别、换脸、图像修复等任务时,我们经常需要生成人脸区域的掩膜(mask)。这篇文章分享一个简单易用的小工具,利用 MediaPipe 和 OpenCV,快速提取人脸轮廓并生成二值掩膜图像。

下面是完整代码,配合详细讲解,适合初学者和需要快速上手的小伙伴!

环境准备

首先,需要安装以下 Python 库(如果尚未安装,可以用 pip 安装):

pip install opencv-python mediapipe pillow numpy

核心代码

import cv2
import numpy as np
import mediapipe as mp
from PIL import Imagedef generate_face_mask(image_path, save_path=None, show=False):# 初始化 MediaPipe 的 FaceMesh 模型mp_face_mesh = mp.solutions.face_meshface_mesh = mp_face_mesh.FaceMesh(static_image_mode=True, refine_landmarks=True)# 读取图像img = cv2.imread(image_path)h, w, _ = img.shape# 人脸检测与关键点提取results = face_mesh.process(cv2.cvtColor(img, cv2.COLOR_BGR2RGB))# 初始化黑色背景的 maskmask = np.zeros((h, w), dtype=np.uint8)# 如果检测到人脸if results.multi_face_landmarks:for face_landmarks in results.multi_face_landmarks:# 获取人脸关键点坐标points = [(int(p.x * w), int(p.y * h)) for p in face_landmarks.landmark]# 使用凸包(convex hull)拟合整个脸部区域hull = cv2.convexHull(np.array(points))# 将凸包区域填充为白色cv2.fillConvexPoly(mask, hull, 255)# 可选:展示生成的 maskif show:cv2.imshow("Mask", mask)cv2.waitKey(0)# 保存 mask 到本地if save_path:cv2.imwrite(save_path, mask)return mask# 使用示例
generate_face_mask(image_path="face.png",  # 替换为你的图像路径save_path="face_mask.png",# show=True  # 如果想看效果可以打开
)

代码讲解

  • MediaPipe FaceMesh

    • MediaPipe 提供了轻量级的人脸关键点检测(共468个关键点),非常适合快速处理。
    • refine_landmarks=True 参数会进一步优化面部区域,如眼睛轮廓、嘴唇轮廓。
  • 提取关键点并绘制凸包(Convex Hull)

    • 为了保证 mask 的完整性,不直接用单个关键点连线,而是用 OpenCV 的 convexHull 函数,将人脸外围自动拟合成一个封闭轮廓。
    • 这样能确保 mask 覆盖整个脸部,即便脸部角度有倾斜或旋转。
  • 保存掩膜(mask)

    • 最后生成的是一张黑白二值图,白色部分为人脸区域,黑色为背景,非常适合后续做图像分割、融合等任务。

效果示例

输入图片:

生成的人脸掩膜:

应用场景

  • 换脸(Face Swap):掩膜用于融合不同人脸区域。
  • 肖像图像处理:美颜、磨皮、特效。
  • 图像修复(Inpainting):只修复人脸区域,背景保持不变。
  • 身份保护:打码或模糊特定人脸区域。

小结

这个方法虽然简单,但实用性非常高,适用于各种需要人脸掩膜的小项目。如果需要更精细的面部特征(比如眼睛、嘴巴分开处理),还可以在此基础上扩展 —— 例如结合不同 landmark 区域单独提取。

希望这篇分享能帮到你,动手试试看吧!👍


文章转载自:

http://UzzOiNyX.pbwcq.cn
http://OuHgemtR.pbwcq.cn
http://WnftKKAv.pbwcq.cn
http://1NKoGrc3.pbwcq.cn
http://J4yZ4RgJ.pbwcq.cn
http://P5610WeE.pbwcq.cn
http://pY3wsBGO.pbwcq.cn
http://iv4gJTsU.pbwcq.cn
http://1Gaxu3Hi.pbwcq.cn
http://bmHNyDXa.pbwcq.cn
http://L4qKxBc4.pbwcq.cn
http://dW4dfT0f.pbwcq.cn
http://cFD9NFOU.pbwcq.cn
http://gtbtLcGh.pbwcq.cn
http://cDzjLxQu.pbwcq.cn
http://a6y2iN2J.pbwcq.cn
http://8Udjvmow.pbwcq.cn
http://awyrrshb.pbwcq.cn
http://gT2oYFxP.pbwcq.cn
http://ayGiyUQX.pbwcq.cn
http://eRpBw5RV.pbwcq.cn
http://deYNNQfL.pbwcq.cn
http://HJGw6pDf.pbwcq.cn
http://WYrcsK5O.pbwcq.cn
http://QpEP0lxx.pbwcq.cn
http://giRj5zu6.pbwcq.cn
http://XN9hAsPu.pbwcq.cn
http://eAwtUyba.pbwcq.cn
http://pvDePb6x.pbwcq.cn
http://Vc8q8dkj.pbwcq.cn
http://www.dtcms.com/wzjs/647505.html

相关文章:

  • 亚马逊购物网站app开发网站排行榜
  • 网站建设课程ppt专业做网站建设制作服务
  • 建设银行官方网站广州营销模式有几种
  • 搜集10个优秀网站哪个平台推广效果最好
  • 保姆给老人做爰神马网站百度站长工具
  • 泰州网站建设电话常州北京网站建设
  • 百度网站置顶怎么做诺尔诺达网站建设
  • 网站建设面试题产品展示网站系统
  • 网站支付按钮怎么做网站没有索引量是什么意思
  • 建设一个视频教学网站织梦网站怎么重新安装
  • wangz网站建设静态网站首页更新
  • 兰州城建设计院网站wordpress主题开发导航制作
  • 网站制作什么做网站的排名与权重
  • 公司手机网站建设价格建站计划书
  • 如何看网站的建站时间深圳优化seo
  • 网站建设对用户影响网页设计模板图片美食
  • 网站速度查询wordpress用oss还是七牛
  • 网站开发公司流程莱芜新闻视频回放今天
  • 西宁网站建设芜湖网站开发
  • aspx网站如何架设大连做网站比较好的
  • 大学生网站制作作业免费下载专业建站网站服务
  • 莱芜网站建设莱芜广州网营广告有限公司
  • 无锡哪家网站做的好建筑网片规范
  • 北京微信网站设计费用wordpress如何添加远程数据库
  • 贵州网站推广网站建设 应酷
  • 外贸营销网站建设公司青岛城乡建设局网站首页
  • 网站如何做360度全景python cms系统
  • 芯火信息做网站怎么样躺平淘宝设计家官网
  • html制作企业宣传网站重庆景观设计公司有哪些
  • 做安全防护信息的网站个人建站怎么做网站好