计算机视觉40例:案例33绘制关键点案例34勾勒五官轮廓
📅 2026/7/30 17:39:33
👁️ 次浏览
案例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()
更多请点击:
https://codechina.net
第一章:从成本导向到价值捕获:AI定价策略升维导论 传统软件定价长期依赖“成本加成”逻辑——将研发、算力、人力等显性投入作为定价基线,再叠加固定利润率。然而在AI时代,模型迭代…
📅 2026/7/30 17:39:33
Solaar终极指南:如何在Linux上免费管理罗技无线设备 【免费下载链接】Solaar Linux device manager for Logitech devices 项目地址: https://gitcode.com/gh_mirrors/so/Solaar
Solaar是Linux平台上最受欢迎的罗技设备管理工具,为Linux用户提供了…
📅 2026/7/30 17:39:33
随着经济的发展,互联网络时代也在飞速进步,每个行业都在努力发展现在先进技术,通过这些先进的技术来提高自己的水平和优势。本文将讲述设计开发一个餐厅点餐系统,这个餐厅点餐系统包括二个部分:前台与后台。系统管理员…
📅 2026/7/30 17:39:33
更多请点击:
https://intelliparadigm.com
第一章:涉密会议场景下通义千问会议转录的合规性与必要性 在党政机关、军工单位及关键基础设施领域,涉密会议对信息全生命周期的安全管控提出严苛要求。通义千问会议转录能力若应用于此类场景&…
📅 2026/7/30 18:31:24
如何在Zotero中一键发现和管理插件?终极Zotero插件市场使用指南 【免费下载链接】zotero-addons Zotero Add-on Market | Zotero插件市场 | Browsing and installing plugins within Zotero 项目地址: https://gitcode.com/gh_mirrors/zo/zotero-addons
你是…
📅 2026/7/30 18:31:24
Nodepay-Claimer安全指南:保护你的加密资产不被盗取 【免费下载链接】Nodepay-Claimer Nodepay airdrop claimer. 项目地址: https://gitcode.com/gh_mirrors/no/Nodepay-Claimer
Nodepay-Claimer作为一款Nodepay airdrop claimer工具,在帮助用户…
📅 2026/7/30 18:31:24
Seraphine:让英雄联盟排位赛变得更智能的战绩查询助手 【免费下载链接】Seraphine 英雄联盟战绩查询工具 项目地址: https://gitcode.com/gh_mirrors/se/Seraphine
还记得上一次排位赛BP时的手忙脚乱吗?当倒计时一秒秒流逝,你需要在短…
📅 2026/7/30 18:31:24
新手必看:analyze-css输出结果全解读(含metrics与offenders分析) 【免费下载链接】analyze-css CSS selectors complexity and performance analyzer 项目地址: https://gitcode.com/gh_mirrors/an/analyze-css
analyze-css是一款强大…
📅 2026/7/30 18:31:24
昨天半夜,我在游戏群里看到有人突然甩出一句“geo4”,底下瞬间炸锅,有人问这是啥新出的副本,有人以为是某种bug代码,还有小白一脸懵逼地问我“geo4什么意思”。说实话,第一次看到这四个字母连在一起,我也愣了一下,脑子里闪过一堆高大上的地理信息系统术语,什么地理编码…
📅 2026/7/30 18:30:21
本文关键词:geo2是共价化合物哎,说实话,每次看到化学题里那些弯弯绕绕的电子式,我就头大。特别是遇到那种非要让你判断是离子还是共价的,心里就发毛。今天咱不整那些虚头巴脑的定义,就聊聊二氧化硅,也就是大家常说的硅石、石英,很多人会误写成geo2,虽然化学式不对,但…
📅 2026/7/30 0:00:24
B4557 [GESP202606 四级] 扫雷 https://www.luogu.com.cn/problem/B4557 中国计算机学会(CCF)2026年6月C四级讲解——扫雷 https://www.bilibili.com/video/BV1MCMg6AEXR/ B4557 [GESP202606 四级] 扫雷 https://www.bilibili.com/video/BV1ZKTj6ZEVh/ 2…
📅 2026/7/30 0:00:26
Windows驱动存储终极清理工具:DriverStoreExplorer完全指南 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer
您是否曾因Windows系统盘空间不足而烦恼?是否遇到过设…
📅 2026/7/30 0:00:26
更多请点击:
https://codechina.net
第一章:AI帮助理解数学概念 人工智能正以前所未有的方式重塑数学学习的路径。通过自然语言处理与符号计算的深度融合,AI不仅能解析抽象定义,还能将定理、证明和几何直觉转化为可交互、可验证的…
📅 2026/7/30 1:16:07
1. 项目背景与核心价值去年参与的一个短剧项目让我深刻体会到传统创作流程的痛点:编剧团队花了三周打磨剧本,角色设计反复修改了七版,最后成片时又因为演员档期问题不得不临时调整分镜。这种低效的创作模式在快节奏的内容行业越来越难以为继。…
📅 2026/7/30 1:16:07
remix-i18next TypeScript类型安全实践:确保翻译键与类型定义同步 【免费下载链接】remix-i18next The easiest way to translate your React Router framework mode apps 项目地址: https://gitcode.com/gh_mirrors/re/remix-i18next
在开发多语言应用时&am…
📅 2026/7/30 1:16:07
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/30 7:16:27
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/30 17:17:14
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/30 5:16:22