QT+Python人脸表情特征识别

news2025/1/20 18:28:43

程序示例精选

QT+Python人脸表情特征识别

前言

QT+Python是非常经典的窗体编程组合,功能完善,可视化界面美观易维护,这篇博客针对人脸表情特征识别方面编写代码,代码整洁,规则,易读,对学习与使用Python有较好的帮助。


文章目录

        一、所需工具软件

        二、使用步骤

                1. 引入库

                2. 打开图像软件

                3. 识别图像特征

                4. 运行结果

         三在线协助


一、所需工具软件

          1. Python3.6以上

          2. Pycharm代码编辑器

          3. Qt, Tensorflow, Pandas库

二、使用步骤

1.引入库

代码如下(示例):


# coding:utf-8
import sys
#从转换的.py文件内调用类
import cv2
import numpy as np
import sys
import tensorflow as tf
 
from untitled import Ui_Dialog
from PyQt5 import QtWidgets
 
from PyQt5 import QtWidgets, QtCore, QtGui
from PyQt5.QtCore import *

2.打开图像文件

代码如下(示例):

   def openFileButton(self):
        imgName, imgType  = QFileDialog.getOpenFileName(self,"打开文件","./","files(*.*)")
        img = cv2.imread(imgName)
        cv2.imwrite("temp/original.jpg", img)
        height, width, pixels = img.shape
        print("width,height",width,height)
        print("self.label.width()",self.label.width())
        print("self.label.height()",self.label.height())
 
 
        frame = cv2.resize(img, (int(rwidth), int(rheight)))
        print("rwidth-elif,rheight-elfi", rwidth, rheight)
        img2 = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)  # opencv读取的bgr格式图片转换成rgb格式
        _image = QtGui.QImage(img2[:], img2.shape[1], img2.shape[0], img2.shape[1] * 3, QtGui.QImage.Format_RGB888)
        jpg_out = QtGui.QPixmap(_image).scaled(rwidth, rheight) #设置图片大小
        self.label.setPixmap(jpg_out) #设置图片显示

该处使用的url网络请求的数据。

3.识别图像特征:

代码如下(示例):

    def recogPerson(self):
        import os
        import cv2
 
 
        img = cv2.imread("temp/original.jpg")
        cv2.imwrite("save/recognPerson2.jpg", img)
        face_detect = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
        eye_detect = cv2.CascadeClassifier('haarcascade_eye.xml')
        # 灰度处理
        gray = cv2.cvtColor(img, code=cv2.COLOR_BGR2GRAY)
        # 检查人脸 按照1.1倍放到 周围最小像素为5
        face_zone = face_detect.detectMultiScale(gray,1.3,5)
        # print ('识别人脸的信息:\n',face_zone)
        l = len(face_zone)
 
 
        ints = 0
        # 绘制矩形和圆形检测人脸
        for x, y, w, h in face_zone:
            ints += 1
            # 绘制矩形人脸区域
            if w < 1000:
                cv2.rectangle(img, pt1=(x, y), pt2=(x + w, y + h), color=[0, 0, 255], thickness=2)
                # 绘制圆形人脸区域 radius表示半径
                cv2.circle(img, center=(x + w // 2, y + h // 2), radius=w // 2, color=[0, 255, 0], thickness=2)
                roi_face = gray[y:y + h, x:x + w]  # 灰度图
                roi_color = img[y:y + h, x:x + w]  # 彩色图
                eyes = eye_detect.detectMultiScale(roi_face)
                for (ex, ey, ew, eh) in eyes:
                    cv2.rectangle(roi_color, (ex, ey), (ex + ew, ey + eh), (0, 255, 0), 2)
 
        cv2.imwrite("save/recognPerson.jpg", img)
        #cv2.waitKey(0)

4.运行结果如下: 

 

三、在线协助:

如需安装运行环境或远程调试,可加扣2945218359, 或扣905733049由专业技术人员远程协助!

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

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

相关文章

docker安装及优化

一、docker安装步骤详解 docker初期版本是1.13&#xff08;同一版本&#xff0c;开源&#xff09; ——》分类型 1.15 - 1.17 过程中分成两种。 ①开源社区 docker-ce ②企业版 docker-ee <span style"color:#000000"><span style"background-colo…

《web结课作业的源码》中华传统文化题材网页设计主题——基于HTML+CSS+JavaScript精美自适应绿色茶叶公司(12页)

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

石化技术杂志石化技术杂志社石化技术编辑部2022年第10期目录

工业、生产《石化技术》投稿&#xff1a;cnqikantg126.com 衰减全反射傅里叶变换红外光谱测定溴化丁基橡胶中硬脂酸钙含量 俞培富;王晗;李振;邓洁;宋轶;姜旭鞠; 1-292 聚丙烯催化剂均聚性能实验研究 关健;付玉祥; 3-5 无损检测在石油钻具失效检验中的应用 李梅英;吕…

pandas中read_csv和to_csv、read_hdf和to_hdf、read_json和to_json函数及其他各类文件的读取与存储

pandas I/O API 是一组访问的顶级读取器函数&#xff0c;如 pandas.read_csv&#xff08;&#xff09;&#xff0c;通常返回一个 pandas 对象。相应的编写器函数是访问的对象方法&#xff0c;如 DataFrame.to_csv&#xff08;&#xff09; 一、read_csv和to_csv pandas.read_…

适用场景全新升级!扩展 Dragonfly2 作为分布式缓存系统架构 | 龙蜥技术

文/龙蜥社区开发者 Dragonfly2 简介 Dragonfly 作为龙蜥社区的镜像加速标准解决方案&#xff0c;是一款基于 P2P 的智能镜像和文件分发工具。它旨在提高大规模文件传输的效率和速率&#xff0c;最大限度地利用网络带宽。在应用分发、缓存分发、日志分发和镜像分发等领域被大规…

1538_AURIX_TriCore内核架构_地址映射以及存储配置

全部学习汇总&#xff1a; GreyZhang/g_tricore_architecture: some learning note about tricore architecture. (github.com) 继续看TriCore的内核手册&#xff0c;这一次看一下地址映射以及存储配置。我大概顺了一遍之后&#xff0c;感觉这部分还是很简单的。而看完这部分&a…

Java使用DOM简单解析XML文件

Java使用DOM简单解析XML文件前言本文目标目标结果演示示例文件信息测试结果解析XML文件相关的Java类DocumentBuilderFactoryDocumentBuilderDocumentNodeListNode简单流程分析练练手NodeList及Node的部分结构分析关于#Text工具类测试测试代码及说明输出结果小结前言 对于某些需…

Python写了个疫情信息快速查看工具

年关将至&#xff0c;大家对疫情的关注度也愈发提升&#xff0c;本次使用PyQt5撰写100行代码写一个疫情信息快速查看工具。 一&#xff0e;准备工作 1.PyQt5 PyQt 是一个用于创建GUI应用程序的跨平台的工具包&#xff0c;它将Python编程语言和Qt库 成功融合在一起。QT库目前…

实验二-----数据库

一、实验目的 1.掌握SQL Server Management Studio中以SQL 命令方式和以向导方式操作表和数据的操作&#xff1b; 2.掌握SQL 的数据定义命令&#xff0c;包括&#xff1a;定义表、删除表和修改表&#xff1b; 3.掌握SQL 的数据更新命令&#xff0c;包括&#xff1a;插入数据、…

JavaScript基础语法(数据类型)

JavaScript基础语法&#xff08;数据类型&#xff09; 数据类型 简介&#xff1a; JavaScript 中提供了两类数据类型&#xff1a;原始类型 和 引用类型。 使用 typeof 运算符可以获取数据类型 alert(typeof age); 以弹框的形式将 age 变量的数据类型输出 原始数据类型 numbe…

数据结构:JAVA 栈和队列

目录 栈 实现一个MyStack 1. push 2.pop 3.empty 4.peek 栈和链表的结合 括号匹配 栈的压入、弹出序列 最小栈 MinStack push ​编辑 pop top getMin 概念区分及思考&#xff1a; 队列 offer&#xff08;入队列&#xff09; poll&#xff08;出队列&#xff0…

Framework ——setContentView源码解读

前言 对于Android的开发者来说&#xff0c;setContentView大家再熟悉不过了&#xff0c;在我们的Activity中首先就是要用它加载我们的布局&#xff0c;但是应该有一部分人是不知道加载布局的原理&#xff0c;也包括我&#xff0c;今天就从源码的角度分析setContentView加载布局…

Java项目:JSP的电影院售票系统(含论文、任务书、中期检查表)

作者主页&#xff1a;源码空间站2022 简介&#xff1a;Java领域优质创作者、Java项目、学习资料、技术互助 文末获取源码 项目介绍 这个项目是一个基于ServletJSP的电影院售票系统&#xff0c;分为管理员和会员两种角色。 管理员权限包括&#xff1a; 修改登录密码 电影类别管…

上海亚商投顾:沪指探底回升跌0.75% 旅游板块集体大涨

上海亚商投顾前言&#xff1a;无惧大盘大跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 市场情绪三大指数早间低开&#xff0c;盘初一度集体跌超2%&#xff0c;随后震荡回升&#xff0c;午后跌幅进一步收窄。旅游板…

宝宝多大可以吃坚果 注意这几个时间节点

近年来&#xff0c;坚果的营养价值引起了公众的广泛关注。节日期间&#xff0c;许多家庭喜欢买坚果来招待客人。与其他油炸相比&#xff0c;.蜜饯零食&#xff0c;坚果真的更健康。但是&#xff0c;对于家里的宝宝来说&#xff0c;适合吃坚果吗&#xff1f;多大的宝宝能吃坚果&…

xss-labs/level-2

这一关我们先查看源代码吧 然后我们可以看得出来 输入点test存在三处输出点 依次是h2标签之间、value属性值处以及h3标签之间的长度 我们可以先尝试一下上一关输入的payload(<script>alert("xss")</script>) 界面回显如下所示 去看看源代码吧 第一处…

五、vue组件与props自定义属性

一、vue组件 1.1、什么是组件化开发 组件化开发指的是&#xff1a;根据封装的思想&#xff0c;把页面上可重用的UI结构封装为组件&#xff0c;从而方便项目的开发和维护。 1.2、vue中的组件化开发 vue是一个支持组件化开发的前端框架。 vue中规定&#xff1a;组件的后缀名是…

JavaWeb----Ajax技术

目录 Ajax技术详解 Ajax简介 Ajax 的使用 Ajax 的运行原理 XMLHttpRequest 对象 Ajax 的使用步骤 Ajax请求 ​编辑 Get/Post请求 JSON详解 JSON简介 为什么要使用 JSON JSON 格式的特征 JSON的语法规则 JOSN的数据类型 JACKSON 的使用 Jackson 简介 在项目中引入…

Scala011--Scala中的常用集合函数及操作Ⅱ

在上一篇文章中我已经接触并认识了几个常用的集合函数&#xff1a;foreach,sorted,sortBy,sortWith,flatten,map,flatMap。 接下来在这一篇文章中我将继续学习剩下的几个集合函数。 目录 一&#xff0c;filter函数 ​编辑 练习题1&#xff1a;如何过滤出大于2的奇数&#…

PyCharm+PyQT5之二第一个QT程序

Tools菜单或者右键打开external tools的 QTdesigner,如下图&#xff0c;在PyQt5中最常用的窗口有三种&#xff0c;即Main Window Widget Dialog&#xff0c; Main Window 也就是主窗口&#xff0c;他要为用户提供一个带有菜单栏、工具栏和状态栏的窗口。 Widget:通用窗口&#…