C# 使用opencv从图片识别人脸示例

news2024/11/24 11:49:51

 

1.用chatgpt帮我写了一个示例

using System;
using Emgu.CV;
using Emgu.CV.CvEnum;
using Emgu.CV.Structure;

class Program
{
    static void Main(string[] args)
    {
        // 加载人脸分类器
        CascadeClassifier faceCascade = new CascadeClassifier("haarcascade_frontalface_default.xml");

        // 加载图像
        Image<Bgr, byte> image = new Image<Bgr, byte>("image.jpg");

        // 将图像转为灰度图
        Image<Gray, byte> grayImage = image.Convert<Gray, byte>();

        // 人脸检测
        var faces = faceCascade.DetectMultiScale(
            grayImage, 
            scaleFactor: 1.1, 
            minNeighbors: 5, 
            minSize: new Size(30, 30));

        // 在图像中绘制检测到的人脸
        foreach (var face in faces)
        {
            image.Draw(face, new Bgr(0, 255, 0), 3);
        }

        // 展示结果
        CvInvoke.Imshow("人脸识别", image);
        CvInvoke.WaitKey(0);
    }
}

 

2.手工安装所需要包

需要安装Emgu.CV(编译时用)和Emgu.CV.runtime.windows(运行时用,不然会报缺少dll) 

DllNotFoundException: Unable to load DLL 'cvextern' or one of its dependenci

3.测试结果

准备https://codeload.github.com/opencv/opencv/zip/refs/tags/4.8.0 解压后需要这个文件D:\\test\\opencv-4.8.0\\data\\haarcascades\\haarcascade_frontalface_default.xml

准备一张图片 有人脸的image.jpg。

运行:

还多了2个框。怎么办呢?

还有的图片没有检测出来,怎么办呢?

4.如何提高人脸识别的精确度

看来想简单使用这些前沿技术,应用到实际项目中也没有那么容易 。

 通过改参数,看看结果是高了还是低了,来决定最终的参数。

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

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

相关文章

Kafka基础架构与核心概念

Kafka简介 Kafka是由Apache软件基金会开发的一个开源流处理平台&#xff0c;由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统&#xff0c;它可以处理消费者在网站中的所有动作流数据。架构特点是分区、多副本、多生产者、多订阅者&#xff0c;性能特点主要是…

测试人必看:五大维度解读软件测试分类

软件测试方法种类繁多&#xff0c;记忆起来也非常混乱&#xff0c; 如果把软件测试方法进行多个维度的分类, 就会清晰很多。 软件测试的分类-按开发阶段分类 单元测试 又称模块测试&#xff0c;针对软件设计中的最小单位-程序模块&#xff0c;进行正确性检查的测试工作。单元…

谷粒商城第五天-将项目改为基于若依框架实现、使用若依进行代码生成(生成MyBatisPlus风格)

目录 一、使用若依框架来搭建后台管理系统 1.1 前端部分 1.2 后端部分 1.2.1 将若依框架植入到项目中 1.2.2 完成数据库配置 二、使用若依框架的逆向生成工具逆向生成代码&#xff08;同时将代码风格改为MyBatisPlus&#xff09; 2.1 使用若依框架提供的逆向生成工具生成…

思科路由器交换机密码破解教程

1. 路由器密码的恢复. 2600、3600等新系列路由器步骤&#xff1a; 1、启动路由器&#xff0c;60秒内按下ctrlbreak键2、rommon>confreg 0x21423、rommon>reset4、router#copy startup-config running-config5、router(config)#no enable secrect //可以删除密码也可以更…

linux升级mysql

linux升级mysql 一.介绍二.下载三.文件配置1.查找删除mysql2.解压配置 四.修改配置五.初始化mysql服务六.启动mysql七.配置数据库七.测试 一.介绍 由于最近业务需要&#xff0c;不得不将之前的mysql5.7.26升级到mysql8.0加了 Linux安装mysql&#xff08;5.7.26&#xff09;&…

浅谈SSM框架理论相关知识_kaic

一、SSM框架简介 SSM框架是Spring MVC &#xff0c;Spring和Mybatis框架的整合&#xff0c;是标准的MVC模式&#xff0c;将整个系统划分为View层&#xff0c;Controller层&#xff0c;Service层&#xff0c;DAO层四层&#xff0c;使用Spring MVC负责请求的转发和视图管理&…

项目管理:甘特图制定项目计划,提高项目管理效率

项目实施周期长&#xff0c;工作范围广&#xff0c;不确定因素多&#xff0c;因此项目管理具有巨大的挑战性。 项目经理需要具备专业的知识能力和个人应变能力&#xff0c;以管理整个项目的实施过程&#xff0c;提高项目实施的成功率和管理效率。 现在&#xff0c;随着社会市…

opencv-16 图像去水印示例

常用的去水印方法&#xff1a; 克隆修复工具&#xff1a;使用图像处理软件&#xff08;如Photoshop&#xff09;中的克隆修复工具可以选择一个样本区域&#xff0c;然后将其复制到水印区域&#xff0c;以覆盖水印。这种方法在简单的水印上可能效果不错&#xff0c;但复杂的水印…

CMU 15-445 -- Concurrency Control Theory - 13

CMU 15-445 -- Concurrency Control Theory - 13 引言TransactionsStrawman/Simple SystemFormal DefinitionsAtomicityLoggingShadow Paging ConsistencyIsolationConflicting OperationsDependency Graphs&#xff08;依赖图&#xff09;VIEW SERIALIZABILITY(视图可串行化) …

配置SQL提示

问题描述 SpringBoot工程中&#xff1a;使用Select注入的时候没有提示 例如&#xff1a; 在正常情况下&#xff1a; 在没有配置SQL提示的时候&#xff1a; 原因分析&#xff1a; 没有进行SQL配置 解决方案&#xff1a; 选中Select注入中的SQL语句&#xff0c;使用IDEA中的快…

第二天 kali代理配置

文章目录 环境一、虚拟机网络模式&#xff08;1&#xff09;NAT&#xff08;2&#xff09;NAT模式&#xff08;3&#xff09;桥接模式&#xff08;4&#xff09;仅主机模式&#xff08;5&#xff09;总结 二、配置代理&#xff08;桥接模式&#xff09;1、基础设置2、虚拟机浏览…

GO语言安全工具开发方向探索

声明&#xff1a;文章所涉及的代码进攻参考和学习&#xff0c;文章中涉及的程序(方法)可能带有攻击性&#xff0c;仅供安全研究与教学之用&#xff0c;读者将其信息做其他用途&#xff0c;由用户承担全部法律及连带责任&#xff0c;文章作者不承担任何法律及连带责任。 文章目录…

ubuntu环境安装centos7虚拟机网络主机不可达,ping不通

【NAT模式下解决】1.首先vi /etc/sysconfig/network-scripts/ifcfg-ens33检查ONBOOTyes&#xff0c;保存 2.输入systemctl restart network命令重启网关

数据结构【排序】

第七章 排序 一、排序 1.定义&#xff1a;将无序的数排好序 &#xff1b; 2.稳定性&#xff1a; Kᵢ和Kⱼ中&#xff0c;Kᵢ优先于Kⱼ那么在排序后的记录中仍然保持Kᵢ优先&#xff1b; 3.评价标准&#xff1a;执行时间和所需的辅助空间&#xff0c;其次是算法的稳定性&#xf…

三,创建订单微服务消费者 第三章

4.3 修改pom添加依赖 <dependencies><!--web--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--监控--><dependency><groupId&g…

ssm笔记

1.IOC和DI配置文件开发 spring&#xff0c;主要内容有两点&#xff1a;IOC&#xff0c;AOP。AOP里面spring独到的事务处理。 理清spring框架设计思想 1.1.Spring Framework系统架构 spring4架构图 系统架构讲究上层依赖于下层 Data Access&#xff1a;数据访问Data Inte…

Win10查看端口占用的方法,并且释放端口

1、按下winR&#xff0c;输入“cmd”&#xff0c;进入黑窗口 2、查询端口&#xff0c;获取到pid //查询所有的端口 netstat -ano//查询指定端口 netstat -ano|findstr 8080 3、查看指定 Pid 进程信息&#xff0c;获取到其运行的服务是什么&#xff0c;这里运行的是Java服务&a…

IIC 学习笔记

IIC 学习笔记 参考链接 https://www.bilibili.com/video/BV1dg4y1H773/?-Arouterstory&buvidXU95A24969E15627051070CAD21A455F5D312&is_story_h5false&midqdyXUrDWOqUn9wT3ra56lA%3D%3D&p1&plat_id163&share_fromugc&share_mediumandroid&…

Jmeter常见问题之URI异常

这篇文章介绍一下"http://"重复导致的URI异常问题&#xff0c;通常从浏览器地址栏复制url&#xff0c;直接粘贴到Jmeter的http请求的服务器地址中会默认带上“http://”&#xff0c;要将http://删除&#xff0c;只写IP地址&#xff0c;如下图&#xff1a; 否则&…

TCP实现原理和为什么需要三次握手?两次握手不可以?四次握手不可以?

TCP实现原理和为什么需要三次握手?两次握手不可以?四次握手不可以? 1. 什么是TCP协议? TCP&#xff1a;Transmission Control Protocol翻译过来就是传输控制协议,TCP协议是一个面向连接的、可靠的、基于字节流的传输层协议RFC 793对TCP连接的定义 > Connections: >…