python-opencv 人脸68点特征点检测

python-opencv 人脸68点特征点检测

不是很难,主要还是掉包,来看一下代码啊:

# coding: utf-8
# 导包
import numpy as np
import dlib
import cv2class face_emotion(object):def __init__(self):# 人脸检测器对象,通过它拿到人脸矩形框坐标self.detector = dlib.get_frontal_face_detector()# 加载预训练模型,创建 人脸关键点检测器 对象self.predictor = dlib.shape_predictor("shape_predictor_68_face_landmarks.dat")# 创建 cv2 视频捕捉对象 or 摄像头对象# 将视频流从默认的摄像头(设备索引0)读取到内存中# 0 是设备索引号,可以替换为其他设备 1、2。。。# ls /dev/video* 查看设备号self.cap = cv2.VideoCapture(0)def feature_point_detection(self):# 循环读取视频帧 or 图像if True:# 读入 1 帧视频# flag:一个布尔值,指示是否成功读取到了视频帧# img:一个 numpy 数组,存储了图像的像素值,(0-255)# flag, img = self.cap.read()# 读入 1 张图像img = cv2.imread("image/beauty.png")# 取灰度# gray = cv2.cvtColor(img, cv2.COLOR_RGB2GRAY)# 使用人脸检测器检测人脸,返回 faces 矩形框坐标数据faces = self.detector(img, 0)print(faces)# exit()# 如果检测到人脸if faces:# 对每张人脸都标出 68 个特征点# for i in range(len(faces)):for k, d in enumerate(faces):shape = self.predictor(img, d)print(shape)# 用圆圈标识每个特征点,(shape.part(i).x, shape.part(i).y) 每个特征点的坐标for i in range(68):index = str(i)cv2.putText(img,index,(shape.part(i).x, shape.part(i).y),  # 左下角cv2.FONT_HERSHEY_SIMPLEX,0.4,  # 0.4:表示文本的缩放因子,可以调整文本的大小(255, 0, 0))# 窗口显示cv2.imshow("img", img)# cv2.waitKey(1) 监听键盘输入,0xFF == 27 键盘 ESC 键值 27if cv2.waitKey(0) & 0xFF == 27:cv2.destroyAllWindows()# 释放摄像头#    self.cap.release()# 删除建立的窗口if __name__ == "__main__":my_face = face_emotion()my_face.feature_point_detection()

运行结果如下:
运行

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

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

相关文章

Rust UI开发(三):iced如何打开图片(对话框)并在窗口显示图片?

注:此文适合于对rust有一些了解的朋友 iced是一个跨平台的GUI库,用于为rust语言程序构建UI界面。 这是一个系列博文,本文是第三篇,前两篇的链接: 1、Rust UI开发(一):使用iced构建…

【华为OD】统一考试B\C卷真题:100%通过:找单词 C/C++实现

【华为OD】统一考试B\C卷真题:100%通过:找单词 C/C实现 目录 题目描述: 示例1 解题思路: 代码实现: 题目描述: 给一个字符串和一个二维字符数组,如果该字符串存在于该数组中,…

【LeetCode:1457. 二叉树中的伪回文路径 | 二叉树 + DFS +回文数】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

使用 OpenCV 发现圆角矩形的轮廓

OpenCV - 如何找到圆角矩形的矩形轮廓? 问题: 在图像中,我试图找到矩形对象的圆角轮廓。然而,我对两者的尝试 HoughLinesP 并 findContours 没有产生预期的结果。 我的目标是找到一个类似于以下形状的矩形: 。 代码: import cv2 import matplotlib.pyplot as plt…

能让PDF看起来像是扫描件的Look Scanned

什么是 Look Scanned ? Look Scanned 是一个能够让 PDF 看起来就像是扫描件一样的纯前端网站。你再也不需要麻烦地打印之后扫描了,你所需要的就是鼠标点几下。 这是个挺有意思的软件,但是老苏不确定什么场景下会用到这个软件,如果不想自己搭…

OBS Studio 30.0 正式发布:支持 WebRTC

导读OBS Studio 30.0 已正式发布。此版本移除了对 Ubuntu 20.04、Qt 5 和 FFmpeg 4.4 之前版本的支持。 OBS Studio 30.0 已正式发布。此版本移除了对 Ubuntu 20.04、Qt 5 和 FFmpeg 4.4 之前版本的支持。 主要变化包括: 支持 WebRTC(详情查看 OBS Stu…

【YOLOv5入门】目标检测

【大家好,我是爱干饭的猿,本文重点介绍YOLOv5入门-目标检测的任务、性能指标、yolo算法基本思想、yolov5网络架构图。 后续会继续分享其他重要知识点总结,如果喜欢这篇文章,点个赞👍,关注一下吧】 上一篇…

Android 单元测试初体验

Android 单元测试初体验 前言一、单元测试是什么?二、简单使用1.依赖2.单元测试代码简单模版及解释 总结 前言 当初在学校学安卓的时候,老师敢教学进度,翻到单元测试这一章节的时候提了两句,没有把单元测试当重点讲,只…

测试思维的思考和例子

批判性思考: 在测试一个视频app的播放功能时,您可能会发现以下问题:视频在播放过程中经常出现卡顿或延迟。经过分析,您可能会怀疑是网络问题或视频源的问题。但经过进一步的测试和观察,您发现只有在特定时间段内出现卡…

大模型中的各种模型名词概念

目录 一、模型 Transformer GPT(GPT-3、GPT-3.5、GPT-4) BERT RoBERTa T5 XlNet GShard Switch Transformer InstrucGPT ChatGPT 大模型 LLM(大语言模型) Alpaca (羊驼) LLaMA Vicuna 俗称「…

编程语言发展史:Ruby语言的发展和应用

介绍 Ruby是一种高级编程语言,最初由日本的松本行弘开发。它在20世纪90年代初首次发布,并在2000年代初开始变得流行。 Ruby是一种动态、面向对象的语言,具有简单、易于学习和使用的语法,因此被广泛应用于Web开发、数据分析、游戏…

详解Python对Excel处理

Excel是一种常见的电子表格文件格式,广泛用于数据记录和处理。Python提供了多个第三方库,可以方便地对Excel文件进行读写、数据操作和处理。本文将介绍如何使用Python对Excel文件进行处理,并提供相应的代码示例和详细说明。 一、安装第三方库…

java设计模式学习之【抽象工厂模式】

文章目录 引言抽象工厂模式简介定义与用途实现方式: 使用场景优势与劣势工厂模式在spring中的应用银行和贷款服务示例代码地址 引言 在我们之前的讨论中,我们探索了工厂方法模式——一种简化单一产品创建的设计模式。现在,我们将视角转向抽象…

2023年亚太杯APMCM数学建模大赛A题水果采摘机器人的图像识别

2023年亚太杯APMCM数学建模大赛 A题 水果采摘机器人的图像识别 原题再现 中国是世界上最大的苹果生产国,年产量约3500万吨。同时,中国也是世界上最大的苹果出口国,世界上每两个苹果中就有一个是中国出口的,世界上超过六分之一的…

VMware系列:VMware16安装Win11虚拟机(最全步骤+踩坑)

VMware16安装Win11虚拟机(最全步骤+踩坑) 以下是安装步骤和踩坑大全准备工作下载镜像安装/配置的流程1、检查安装的系统环境是否符合最低要求2. 这里给出需要注意的几个点3. 如果出现了如下情况、请看下面的【三】安装Windows11出现问题解决!!!!4. 注意:如果没有出现【驱…

Star History 十月开源精选 |AI for Postgres

在 2023 年 Stack Overflow 开发者调查中,Postgres 顶替了 MySQL 被评为最受欢迎的数据库。一个重要因素应该是 Postgres 支持扩展:可扩展的架构 Postgres 仍然由社区拥有,Postgres 生态近年来蓬勃发展。 扩展可以看作是内置功能&#xff0c…

自定义的AlphaShape类来提取平面点云数据的边界点 open3d c++ 代码 平面点云边界提取算法

使用了自定义的AlphaShape类来提取点云数据的边界点,并使用Open3D库进行可视化。 引入必要的头文件和命名空间: main函数: 读取点云数据文件到cloud对象。如果读取失败,则输出错误信息并返回。将点云数据全部着色为蓝色。创建一个空的点云对象boundaryCloud,用于存储提取…

跟着chatgpt学习|1.spark入门

首先先让chatgpt帮我规划学习路径,使用Markdown格式返回,并转成思维导图的形式 目录 目录 1. 了解spark 1.1 Spark的概念 1.2 Spark的架构 1.3 Spark的基本功能 2.spark中的数据抽象和操作方式 2.1.RDD(弹性分布式数据集) 2…

9:kotlin 返回和跳过(Returns and jumps)

kotlin有三种结构跳转表达式: return会从最近的封闭函数或匿名函数返回。 break终止最近的封闭循环。 continue继续最近的封闭循环的下一步。 所有这些表达式都可以作为其他表达式的一本分使用 val s person.name ?: returnval s person.name ?: return 这…

SpringBoot yml配置文件打印值

目录 SpringBoot中配置文件打印值 yml配置 config类 启动类 测试类 注解分析 SpringBoot中配置文件打印值 yml配置 student:red: douconfig类 Data ConfigurationProperties(prefix "student") // 文件上传 配置前缀file.oss public class MinIOConfigProp…