python dlib 面部特征点检测

运行环境macos m2芯片 Python 3.11.7,python3.9都能通过,windows系统应该也是一样的效果

import dlib
import cv2
import matplotlib.pyplot as plt# Load the image
image_path = 'path_to_your_image.jpg'  # Replace with the path to your image
image = cv2.imread(image_path)# Convert the image to grayscale
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)# Initialize the dlib face detector
detector = dlib.get_frontal_face_detector()# Initialize the shape predictor
predictor_path = 'shape_predictor_68_face_landmarks.dat'  # Replace with the path to your .dat file
predictor = dlib.shape_predictor(predictor_path)# Detect faces in the image
faces = detector(gray)# Loop over each detected face
for face in faces:# Get the landmarkslandmarks = predictor(gray, face)# Loop over each landmark pointfor n in range(0, 68):x = landmarks.part(n).xy = landmarks.part(n).ycv2.circle(image, (x, y), 2, (0, 255, 0), -1)# Convert the image back to RGB for displaying with matplotlib
image_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)# Display the image with detected landmarks
plt.imshow(image_rgb)
plt.axis('off')
plt.show()

 dlib 的亮点之一是其高精度的人脸检测和面部特征点检测功能,包含了用于检测 68 个面部特征点的预训练模型。

shape_predictor_68_face_landmarks.dat下载地址

链接: https://pan.baidu.com/s/1MhwLavLU2uWJnNo13gTLjQ 提取码: 5555
--来自百度网盘超级会员v9的分享 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/21101.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Qt】【模型视图架构】代理模型

文章目录 代理模型简单介绍QSortFilterProxyModel类简单介绍排序过滤子类化 代理模型简单介绍 代理模型的作用是可以将一个模型中的数据进行排序或者过滤,然后提供给视图进行显示。 如下所示,创建一个源模型、一个代理模型,界面上创建一个列…

QT 信号和槽 一对多关联示例,一个信号,多个槽函数响应,一个信号源如何绑定多个槽函数

在窗体里放置一个单行文本编辑控件(QLineEdit)、一个标签控件(QLabel)和一个文本浏览控件(QTextBrowser),在单行文 本编辑控件里的文本被编辑时,标签控件和文本浏览控件都会同步显示…

网安速成之选择题(详细解析版)

网安速成之选择题 单选多选 单选 密码学的目的是( C )。 A. 研究数据压缩 B. 研究数据解密 C. 研究数据保密 D. 研究漏洞扫描 密码学的目的是研究数据加密,保证数据的机密性 数据机密性安全服务的基础是( D )。 A. 数…

C++ 的 Tag Dispatching(标签派发) 惯用法

目录 1.概述 2.标准库中的例子 3.使用自己的 Tag Dispatching 3.1.使用 type traits 技术 3.2.使用 Type_2_Type 技术 4.Tag Dispatching的使用场景 5.总结 1.概述 一般重载函数的设计是根据不同的参数决定具体做什么事情,编译器会根据参数匹配的原则确定正确…

面试题 - Java基础个人总结

1、Java语言特点/优势 1.1、什么是面向对象编程 2、Java的八种基本数据类型 2.1、为什么要有基本数据类型的封装类 2.2、Java自动装箱和拆箱 笔试题-1 笔试题-2 2.3、为什么浮点数运行时,会有丢失精度的风险? 2.4、补充知识: 3、重载…

WP All Import插件

使用 WP All Imports 插件并将亚马逊产品集成到 WooCommerce 网站中。在您的网站上,他们可以添加到购物车...然后一旦他们按下结帐,他们就会被发送到亚马逊进行付款 WP All Import 是一个强大的WordPress插件,它允许用户从XML或CSV文件中导入…

封装uview-plus上传组件up-upload,支持v-model绑定

痛点 vue上传组件拿到了一般无法直接使用,需要对其上下传的接口按照业务进行处理及定制。本次拿到的uview-plus也是一样,对其上传组件up-upload进行封装,令其更方便开发 目标 封装希望达到的目标,就是实现v-model的绑定。令其支…

字符串-将str1编辑成str2所需最小代价(hard)

一、题目描述 二、解题思路 该题目使用动态规划的思想来解决问题 刚开始我还在想,删除添加的操作可以等价为替换操作,如果替换操作的Cost大于删除添加组合操作的Cost之和就需要把 rcdcic。 但是在动态规划中,如果对三种不同的操作方式进行…

【Centos7】解决 CentOS 7 中出现 “xx: command not found“ 错误的全面指南

【Centos7】初探xx:command not found解决方案 大家好 我是寸铁👊 【Centos7】解决 CentOS 7 中出现 “xx: command not found” 错误的全面指南✨ 喜欢的小伙伴可以点点关注 💝 前言 经常有小伙伴问我,xx:command not found怎么办&#xff1…

Spring原理-IOC和AOP

概述 在此记录spring的学习内容。spring官网:https://spring.io/ 概念故事 从前,在Java的大森林中,有一片神奇的土地,名叫"Spring"。这片土地上生长着各种美丽而强大的植物,它们分别象征着Spring框架中的…

1.1 寻找灵感:怎样像艺术家一样去看待这个世界

“你是从哪里获取到这些创作灵感的?” 当每一个艺术家被问到这个问题时,只有诚实的艺术家会回答: “这是我偷窃的” 怎样像艺术家一样去看待这个世界呢? 你首先需要弄明白什么是值得你偷窃的,然后你才能继续接下来…

如何在一台电脑上安装多个版本的JDK并且切换使用?

如何在一台电脑上安装多个版本的JDK并且切换使用? 文章目录 如何在一台电脑上安装多个版本的JDK并且切换使用?1.目录管理2.下载JDK3.配置环境变量4. 验证 1.目录管理 我们需要首先对不同版本的JDK进行版本管理,如下所示,我在C盘路…

# linux 系统下 切换 root 用户时出现 authentication failure 的解决办法

linux 系统下 切换 root 用户时出现 authentication failure 的解决办法 1、问题分析: 切换 root 用户时出现 authentication failure,意思即 “身份验证失败”,这是由于新安装的系统,可能没有给 root 用户设置密码。 2、解决方…

算法(二)二分查找

文章目录 二分查找简介实现方式循环方式递归方式 经典例子 二分查找简介 二分查找(binary search)算法,也叫折半算法。二分查找是针对有序的数据集合的查找办法,如果是无序的数据结合就使用遍历。二分查找之所以快速,…

OWASP top10--SQL注入(四、sqlmap安装及使用)

目录 sqlmap工具安装: 工具说明: 主要功能特性包括: 基本使用示例: 先下载python2.7.9版本 sqlmap运行 sqlmap工具使用 -u -r –-levelLEVEL扫描深度级别 --riskRISK 执行测试的风险 -threads 线程数 -batch-smart智能…

JS异步编程

目录 概念定时器Promise对象概念 单线程模型指的是,JavaScript 只在一个线程上运行。也就是说,JavaScript 同时只能执行一个任务,其他任务都必须在后面排队等待。JavaScript 只在一个线程上运行,不代表 JavaScript 引擎只有一个线程。事实上,JavaScript 引擎有多个线程,…

鸿蒙开发加强2

快速创建一个符合长度的数组 空数组 Array.from({length: 200}) // 200的长度的空数组 场景:只确定长度,不确定内容的情况 State 状态装饰器 》增强功能 数据变化了 可以引起页面的重新渲染 没有State修饰的变量,不会引起UI的刷新渲染 加…

php获取今天凌晨零点的时间

不废话直接上代码 //使用strtotime $midnightToday strtotime("today midnight"); //输出:1716998400 //如果是明天 $midnightToday 86400 //后天 $midnightToday 86400*2//ORM中比对使用 $row ModelVisit::where(uid,$this->uid)->where(visi…

C++面试十二连问(语言基础篇)

前言: C开发讲究的是细分领域,越往后越没有人在意你是不是了解语言特性,但是对相关行业经验的要求就越高。作为初入行业的新人,在经验这块是比较欠缺的,相比之下,C八股还是比较容易上手的,属于努…

学习整理 docker

nexus 搭建nexus将其他pom、jar导入到nexus中