基于opencv[python]的人脸检测

1 图片爬虫

这里的代码转载自:http://t.csdnimg.cn/T4R4F

# 获取图片数据
import os.path
import fake_useragent
import requests
from lxml import etree# UA伪装
head = {"User-Agent": fake_useragent.UserAgent().random}pic_name = 0
def request_pic(url):# 发送请求response = requests.get(url, headers=head)# 获取想要的数据res_text = response.text# 数据解析tree = etree.HTML(res_text)li_list = tree.xpath("//div[@class='slist']/ul/li")for li in li_list:# 图片的urlimg_url = "https://pic.netbian.com" + "".join(li.xpath("./a/img/@src"))# 发送请求img_response = requests.get(img_url, headers=head)# 获取想要的数据img_content = img_response.contentglobal pic_namewith open(f"./picLib/{pic_name}.jpg", "wb") as fp:fp.write(img_content)pic_name += 1if __name__ == '__main__':# 创建存放照片的文件夹if not os.path.exists("./picLib"):os.mkdir("./picLib")# 网站的urlurl = "https://pic.netbian.com/4kdongman/"request_pic(url)for i in range(1,10):next_url = f"https://pic.netbian.com/4kmeinv/index_{i}.html"request_pic(next_url)

         结果如图1-1所示:

图 1-1  

2 基于opencv自带分类器的人脸检测 

import cv2  
import os  
import matplotlib.pyplot as plt  # 定义人脸检测器的路径  
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')  # 设置图片文件夹路径  
folder_path = 'picLib'  # 设置要显示的图像数量  
num_to_display = 5  # 例如,只显示前4张图像  # 创建一个图形和子图  
fig, axs = plt.subplots(1, num_to_display, figsize=(15, 5))  # 遍历文件夹中的前几张图片  
for i in range(num_to_display):  file_name = f'{i}.jpg'  image_path = os.path.join(folder_path, file_name)  # 读取图片  img = cv2.imread(image_path)  if img is None:  print(f"Error loading image {file_name}")  continue  # 转换为灰度图  gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)  # 检测人脸  faces = face_cascade.detectMultiScale(gray, 1.3, 5)  # 在原图上绘制矩形框  for (x, y, w, h) in faces:  cv2.rectangle(img, (x, y), (x+w, y+h), (255, 0, 0), 2)  # 注意:OpenCV 图像是BGR,而Matplotlib 期望的是RGB,因此我们需要转换颜色通道  img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)  # 显示图像  axs[i].imshow(img_rgb)  axs[i].axis('off')  # 关闭坐标轴  # 显示图形  
plt.show()  

        运行结果如图2-1所示:

图 2-1 

        从这里可以清晰看到有1/3的图像没有成功检测到,后面我试试用Faster R-CNN模型,不过需要标注,数据量也大,这里先试着玩玩呗。 

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

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

相关文章

EXT4 数据结构

高级数据结构设计 Blocks EXT4 以块为单位分配存储空间。块是一组扇区介于 1KiB 和 64KiB 之间,扇区数量必须为 2 的整数幂。块又被分组成更大的单元,称为块组。默认情况下,文件系统可以包含 2^32 个块,启用 64 bits feature,则文件系统可以有 2^64 个块。 Layout 标准…

谷粒商城实战笔记-65-商品服务-API-品牌管理-表单校验自定义校验器

文章目录 1,el-form品牌logo图片自定义显示2,重新导入和注册element-ui组件3,修改brand-add-or-update.vue控件的表单校验规则firstLetter 校验规则sort 校验规则 1,el-form品牌logo图片自定义显示 为了在品牌列表中自定义显示品…

Typora 以 Github 作为图床使用 PicGo 上传图片

本文简练快速介绍如标题所述的操作流程 文章目录 1.前言1.1 图床简述1.2 Github图床的优缺点1.2.1 优点1.2.2 缺点 2.下载PicGo3.Github访问加速4.用github创建图床服务器4.1 注册4.2 创建仓库 4.3 生成TOKEN令牌5.设置PicGo6.设置Typora7.完成 1.前言 1.1 图床简述 图床&…

人工智能背后的图灵测试(TuringTest)是什么?

人工智能背后的图灵测试(TuringTest)是什么? 一、什么是图灵测试 图灵测试(Turing Test)由英国数学家和计算机科学家阿兰图灵(Alan Turing)在1950年提出,用以判断机器是否具有人类智能。图灵在其论文《计…

SNIFFER:用于可解释性的虚假信息检测的多模态大语言模型

S NIFFER : Multimodal Large Language Model for Explainable Out-of-Context Misinformation Detection 论文地址: https://openaccess.thecvf.com/content/CVPR2024/papers/Qi_SNIFFER_Multimodal_Large_Language_Model_for_Explainable_Out-of-Context_Misinformation_D…

3.1、数据结构-线性表

数据结构 数据结构线性结构线性表顺序存储和链式存储区别单链表的插入和删除练习题 栈和队列练习题 串(了解) 数据结构 数据结构该章节非常重要,上午每年都会考10-12分选择题下午一个大题 什么叫数据结构?我们首先来理解一下什…

【Android】碎片—动态添加、创建Fragment生命周期、通信

简单用法 在一个活动中添加两个碎片&#xff0c;并让这两个碎片平分活动空间 先新建一个左侧碎片布局和一个右侧碎片布局 左侧碎片 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/…

Unity Android接入SDK 遇到的问题

1. buildtools、platformtools、commandline tools 以及compiled sdk version、buildtools sdk version、target sdk version 的说明 Android targetSdkVersion了解一下 - 简书 2. 查看.class 和.jar文件 jd_gui 官网地址&#xff1a; 下载jd_gui 工具 &#xff0c;或者 idea 下…

ITK-均值滤波

作者&#xff1a;翟天保Steven 版权声明&#xff1a;著作权归作者所有&#xff0c;商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处 均值滤波原理 均值滤波是一种常用的图像平滑技术&#xff0c;用于减少图像中的噪声。其基本原理是通过计算图像中每个像素及其邻…

linux ftp操作记录

一.ftp 创建用户 passwd: user ftpuser does not exist 如果你遇到 passwd: user ftpuser does not exist 的错误&#xff0c;这意味着系统中不存在名为 ftpuser 的用户。你需要首先确认FTP用户是否是系统用户&#xff0c;还是FTP服务器软件&#xff08;如Pure-FTPd&#xff…

【React】通过实际示例详解评论列表渲染和删除

文章目录 一、引言二、初始状态与状态更新1. 使用useState钩子管理状态2. 评论列表的初始数据 三、列表渲染的实现1. list.map(item > { ... })2. return 语句3. JSX 语法4. 为什么这样设计5. 完整解读 四、列表项的唯一标识1. key 的作用2. key 的用法3. 可以没有 key 吗&a…

【Stable Diffusion】(基础篇五)—— 使用SD提升分辨率

使用SD提升分辨率 本系列博客笔记主要参考B站nenly同学的视频教程&#xff0c;传送门&#xff1a;B站第一套系统的AI绘画课&#xff01;零基础学会Stable Diffusion&#xff0c;这绝对是你看过的最容易上手的AI绘画教程 | SD WebUI 保姆级攻略_哔哩哔哩_bilibili 在前期作画的…

c++ 构造函数与析构函数

本文参考菜鸟教程&#xff0c;仅作笔记用。 构造函数 构造函数&#xff08;Constructor&#xff09;是一种特殊的方法&#xff0c;用于在创建对象时进行初始化操作。构造函数的名称与类的名称是完全相同的&#xff0c;并且不会返回任何类型&#xff0c;也不会返回 void。在面…

Pytorch使用教学4-张量的索引

1 张量的符号索引 张量也是有序序列&#xff0c;我们可以根据每个元素在系统内的顺序位置&#xff0c;来找出特定的元素&#xff0c;也就是索引。 1.1 一维张量的索引 一维张量由零维张量构成 一维张量索引与Python中的索引一样是是从左到右&#xff0c;从0开始的&#xff…

ubuntu cmake使用自己版本的qt

给一篇文章参考 https://blog.csdn.net/bank_dreamer/article/details/138678909 自己使用的范例 set(Qt5_DIR "/home/peak/Qt5.14.0/5.14.0/gcc_64/lib/cmake/Qt5")# 设置Qt5的安装目录 #set(CMAKE_PREFIX_PATH "/home/peak/Qt5.14.0")find_package(Qt5…

搭建NFS、web、dns服务器

目录 1、搭建一个nfs服务器&#xff0c;客户端可以从该服务器的/share目录上传并下载文件 服务端配置&#xff1a; 客户端测试&#xff1a; 2、搭建一个Web服务器&#xff0c;客户端通过www.haha.com访问该网站时能够看到内容:this is haha 服务端配置&#xff1a; 客户端…

ubuntu升级gdb

安装 下载网址 https://ftp.gnu.org/gnu/gdb/ wget https://ftp.gnu.org/gnu/gdb/gdb-11.1.tar.xz xz -d gdb-11.1.tar.xz tar xvf gdb-11.1.tar编译 cd gdb-11.1 ./configure make -j4 sudo make install问题 makeinfo‘ is missing on your system sudo apt install te…

WEB渗透Web突破篇-SQL注入(MSSQL)

注释符 -- 注释 /* 注释 */用户 SELECT CURRENT_USER SELECT user_name(); SELECT system_user; SELECT user;版本 SELECT version主机名 SELECT HOST_NAME() SELECT hostname;列数据库 SELECT name FROM master..sysdatabases; SELECT DB_NAME(N); — for N 0, 1, 2, ……

【Web爬虫逆向】“企业预警通”模糊查询公司信息,逆向案例实战

“企业预警通”模糊查询公司信息&#xff0c;逆向案例实战 功能介绍效果演示思路分析1、先找到模糊查询的接口2、分析headers与params中参数并进行构造3、JS逆向&#xff0c;跟栈&#xff0c;找到js中key和dataCategory的生成方法&#xff0c;并完成js补码构造4、成功还原key后…

设计模式总结:适配器、桥接、组合和迭代器模式

在之前的对话中&#xff0c;我们讨论了五种常见的 Java 设计模式&#xff1a;单例、工厂、策略、装饰器和观察者模式。现在&#xff0c;让我们继续探索其他四种设计模式&#xff1a;适配器、桥接、组合和迭代器模式。 适配器模式 概念&#xff1a; 适配器模式是一种结构型设计…