计算机视觉40例:案例33绘制关键点案例34勾勒五官轮廓
案例33绘制关键点# 使用dlib进行人脸关键点检测68个特征点## 完整代码pythonimport numpy as npimport cv2import dlib# 读取图像img cv2.imread(people.jpg)# Step 1构造人脸检测器dlib初始化detector dlib.get_frontal_face_detector()# Step 2检测人脸框使用人脸检测器返回检测到的人脸框faces detector(img, 0)# Step 3载入模型加载预测器predictor dlib.shape_predictor(shape_predictor_68_face_landmarks.dat)# Step 4获取每一张脸的关键点实现检测for face in faces:# 获取关键点shape predictor(img, face)# 将关键点转换为坐标(x,y)的形式landmarks np.matrix([[p.x, p.y] for p in shape.parts()])# Step 5绘制每一张脸的关键点绘制shape中的每个点for idx, point in enumerate(landmarks):# 当前关键点的坐标pos (point[0, 0], point[0, 1])# 针对当前关键点绘制一个实心圆cv2.circle(img, pos, 2, color(0, 255, 0), thickness-1)# 字体font cv2.FONT_HERSHEY_SIMPLEX# 利用cv2.putText输出1-68索引序号加1显示时从1开始cv2.putText(img, str(idx 1), pos, font, 0.4, (255, 255, 255), 1, cv2.LINE_AA)# 绘制结果cv2.imshow(img, img)cv2.waitKey()cv2.destroyAllWindows()案例34勾勒五官轮廓python import numpy as np import dlib import cv2 # 模型初始化 shape_predictor shape_predictor_68_face_landmarks.dat #dace_landmark detector dlib.get_frontal_face_detector() predictor dlib.shape_predictor(shape_predictor) # 自定义函数drawLine将指定的点连接起来 def drawLine(start,end): # 获取点集 pts shape[start:end] # 遍历点集将各个点用直线连接起来 for l in range(1, len(pts)): ptA tuple(pts[l - 1]) ptB tuple(pts[l]) cv2.line(image, ptA, ptB, (0, 255, 0), 2) # 自定义函数将指定的点构成一个凸包、绘制其轮廓 def drawConvexHull(start,end): # 注意凸包用来绘制眼睛、嘴 # 眼睛、嘴也可以用drawLine通过直线绘制 # 但是使用凸包绘制轮廓更方便进行颜色填充等设置 # 获取某个特定五官的点集 Facial shape[start:end] # 针对该五官构造凸包 mouthHull cv2.convexHull(Facial) # 把凸包轮廓绘制出来 cv2.drawContours(image, [mouthHull], -1, (0, 255, 0), 2) # 读取图像 imagecv2.imread(people.jpg) # 色彩空间转换彩色(BGR)--灰度Gray gray cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) # 获取人脸 faces detector(gray, 0) # 对检测到的rects逐个遍历 for face in faces: # 针对脸部的关键点进行处理构成坐标(x,y)形式 shape np.matrix([[p.x, p.y] for p in predictor(gray, face).parts()]) # 使用函数drawConexHull绘制嘴、眼睛 #获取嘴部的关键点集在整个脸部索引中其索引范围为[48,60],不包含61 drawConvexHull(48,59) # 嘴内部 drawConvexHull(60,68) # 左眼 drawConvexHull(42,48) # 右眼 drawConvexHull(36,42) # 使用函数drawLine绘制脸颊、眉毛、鼻子 # 将shape转换为np.array shapenp.array(shape) # 绘制脸颊把脸颊的各个关键点索引0-16不含17用线条连接起来 drawLine(0,17) # 绘制左眉毛通过将关键点连接实现索引18-21 drawLine(17,22) # 绘制右眉毛索引23-26 drawLine(22,27) # 鼻子索引27-36 drawLine(27,36) cv2.imshow(Frame, image) cv2.waitKey() cv2.destroyAllWindows()

相关新闻

从成本导向到价值捕获:AI定价策略升维手册(含客户终身价值LTV预测模型Python实操)

从成本导向到价值捕获:AI定价策略升维手册(含客户终身价值LTV预测模型Python实操)

更多请点击: https://codechina.net 第一章:从成本导向到价值捕获:AI定价策略升维导论 传统软件定价长期依赖“成本加成”逻辑——将研发、算力、人力等显性投入作为定价基线,再叠加固定利润率。然而在AI时代,模型迭代…

2026/7/30 17:39:32 阅读更多 →
Solaar终极指南:如何在Linux上免费管理罗技无线设备

Solaar终极指南:如何在Linux上免费管理罗技无线设备

Solaar终极指南:如何在Linux上免费管理罗技无线设备 【免费下载链接】Solaar Linux device manager for Logitech devices 项目地址: https://gitcode.com/gh_mirrors/so/Solaar Solaar是Linux平台上最受欢迎的罗技设备管理工具,为Linux用户提供了…

2026/7/30 17:39:32 阅读更多 →
Popcorn Time完整指南:一站式开源流媒体观影解决方案深度解析

Popcorn Time完整指南:一站式开源流媒体观影解决方案深度解析

Popcorn Time完整指南:一站式开源流媒体观影解决方案深度解析 【免费下载链接】popcorntime Popcorn Time™ puts everything in one place. Your favorite platforms, your shows, your movies-ready when you are. 项目地址: https://gitcode.com/GitHub_Trendi…

2026/7/30 17:38:32 阅读更多 →

最新新闻

RedisDesktopManager 终极实战指南:如何高效管理 Redis 数据库

RedisDesktopManager 终极实战指南:如何高效管理 Redis 数据库

RedisDesktopManager 终极实战指南:如何高效管理 Redis 数据库 【免费下载链接】RedisDesktopManager RedisInsight/RedisDesktopManager: RedisDesktopManager 是一个用于 Redis 数据库管理的桌面应用程序,可以用于连接和操作 Redis 数据库,…

2026/7/30 17:45:34 阅读更多 →
Flutter实现国际化(多语言)

Flutter实现国际化(多语言)

在全球化趋势下,应用支持多语言是非常重要的。Flutter 提供了强大的国际化(i18n)支持,可以通过 flutter_localizations 与 gen-l10n 工具生成的本地化类来实现不同区域和语言的适配。本篇博客将介绍如何在 Flutter 项目中使用 flu…

2026/7/30 17:45:34 阅读更多 →
STM32硬件I2C驱动0.96寸OLED屏幕

STM32硬件I2C驱动0.96寸OLED屏幕

0.96寸OLED屏幕 0.96寸:屏幕对角线长0.96英寸 驱动:SSD1306驱动IC,驱动芯片内置128*64的SRAM存储器,用于缓存要显示的数据 分辨率:128*64(横128,竖64) 供电:3.3V&…

2026/7/30 17:45:34 阅读更多 →
乌鲁木齐无人应用技术专业学校选择经验分享

乌鲁木齐无人应用技术专业学校选择经验分享

引言随着低空经济的蓬勃发展,无人机技术已渗透至农业植保、电力巡检、物流配送等多个领域,专业人才需求激增。对于希望进入这一行业的学习者来说,选择一所合适的无人机技校至关重要。本文将基于亲身体验及行业调研,为读者提供一份…

2026/7/30 17:45:34 阅读更多 →
多机器人协同编队控制:领航追随法与Matlab实现

多机器人协同编队控制:领航追随法与Matlab实现

1. 项目概述:多机器人协同编队控制的核心挑战多移动机器人协同编队控制是当前智能机器人领域的前沿研究方向,特别是在物流仓储、灾害救援和军事侦察等场景中具有重要应用价值。这个项目通过Matlab仿真环境,实现了基于领航追随法(L…

2026/7/30 17:45:33 阅读更多 →
2026年辽宁智慧燃气安全监测服务商甄选指南

2026年辽宁智慧燃气安全监测服务商甄选指南

辽宁作为东北老工业基地核心省份,燃气管网总里程超10万公里。沈阳、大连、鞍山等城市存在大量服役超30年的老旧管线,管道腐蚀和泄漏风险突出。冬季严寒期长达5个月,供暖季天然气消费量巨大,与燃气发电、工业用气叠加形成多重用气高…

2026/7/30 17:44:33 阅读更多 →

日新闻

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南

Windows驱动存储终极清理工具:DriverStoreExplorer完全指南 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 您是否曾因Windows系统盘空间不足而烦恼?是否遇到过设…

2026/7/30 0:00:13 阅读更多 →
如何3步掌握Video Download Helper:网页视频下载的完整实战指南

如何3步掌握Video Download Helper:网页视频下载的完整实战指南

如何3步掌握Video Download Helper:网页视频下载的完整实战指南 【免费下载链接】VideoDownloadHelper Chrome Extension to Help Download Video for Some Video Sites. 项目地址: https://gitcode.com/gh_mirrors/vi/VideoDownloadHelper 你是否曾经在浏览…

2026/7/30 0:00:13 阅读更多 →
“双减”后首个AI备课压力测试报告:覆盖32所中小学的176节AI辅助课,暴露4大隐性增负节点

“双减”后首个AI备课压力测试报告:覆盖32所中小学的176节AI辅助课,暴露4大隐性增负节点

更多请点击: https://intelliparadigm.com 第一章:AI 教师备课辅助 AI 教师备课辅助系统正逐步成为教育数字化转型的核心支撑工具,它并非替代教师,而是通过语义理解、知识图谱与多模态生成能力,将教师从重复性劳动中解…

2026/7/30 0:00:13 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/29 22:18:20 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/29 14:34:28 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/29 15:00:03 阅读更多 →

月新闻