首页 > 其他分享 >2024年12月30日(opencv 人脸识别_v1.0)

2024年12月30日(opencv 人脸识别_v1.0)

时间:2025-01-01 23:00:13浏览次数:3  
标签:gray 12 imshow image 30 cv2 v1.0 zcw png

系统信息:

Raspberry Pi Zero 2W
系统版本: 2024-10-22-raspios-bullseye-armhf
Python 版本:Python 3.9.2
已安装 pip3
支持拍摄 1080p 30 (1092*1080), 720p 60 (1280*720), 60/90 (640*480)
已安装 vim
已安装 git


学习目标:

  • 人脸识别
  • 图像读取
  • 修改尺寸
  • 绘制矩形
  • 人脸检测

学习内容:

读取图片

import cv2

# 读取图片
image = cv2.imread("./Pictures/01_zcw_bd.png")
# 显示图片
cv2.imshow("image", image)
# 等待
cv2.waitKey()
# 释放内存
cv2.destroyAllWindows()  # 主要功能是关闭所有由 OpenCV 创建的窗口

灰度转换

import cv2

# 读取图片
image = cv2.imread("./Pictures/01_zcw_bd.png")
# 灰度转换
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)

# 显示图片
# cv2.imshow("image", image)
cv2.imshow("gray", gray)  # 从 BGR 颜色空间转换为灰度 GRAY 颜色空间
cv2.imwrite("./01_zcw_bd_gray.png", gray)
# 等待
cv2.waitKey()
# 释放内存
cv2.destroyAllWindows()  # 主要功能是关闭所有由 OpenCV 创建的窗口

修改尺寸

import cv2

# 读取图片
image = cv2.imread("./Pictures/01_zcw_bd.png")
# 修改尺寸
resize_image = cv2.resize(image, dsize=(200, 200))
# 打印尺寸大小
print("未修改", image.shape)
print("修改", resize_image.shape)
# 显示图片
cv2.imshow("image", image)
cv2.imshow("resize", resize_image)
# 等待
cv2.waitKey()
# 释放内存
cv2.destroyAllWindows()  # 主要功能是关闭所有由 OpenCV 创建的窗口

绘制矩形

import cv2

# 读取图片
image = cv2.imread("./Pictures/01_zcw_bd.png")
# 坐标
x, y, w, h = 20, 50, 80, 100
print(image.shape)
# 绘制矩形
cv2.rectangle(image, (x, y, x+w, y+h), color=(0, 0, 255), thickness=1)
# 绘制圆形
cv2.circle(image, (x+w, y+h), radius=100, color=(255, 0, 0), thickness=5)
# 显示图片
cv2.imshow("image", image)
# 等待
cv2.waitKey()
# 释放内存
cv2.destroyAllWindows()  # 主要功能是关闭所有由 OpenCV 创建的窗口

人脸检测(多人脸检测)

import cv2

# 读取图像
image = cv2.imread("./Pictures/01_zcw_bd.png")

# 检测
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
face_detect = cv2.CascadeClassifier("./haarcascade_frontalface_alt2.xml")
# 缩放倍数 检测次数 0
face = face_detect.detectMultiScale(gray, 1.01, 5, 0, (100, 100), (200, 200))
for x, y, w, h in face:
    cv2.rectangle(image, (x, y), (x+w, y+h), color=(0, 0, 255), thickness=2)
cv2.imshow("result", image)
cv2.waitKey()
cv2.destroyAllWindows()

学习参考:

  1. opencv 人脸识别

标签:gray,12,imshow,image,30,cv2,v1.0,zcw,png
From: https://blog.csdn.net/weixin_50198505/article/details/144835955

相关文章

  • 124K小工具,嘎嘎好用!
    点击蓝字关注我作者|风雨软件前言如果当你正在玩游戏玩到起劲的时候,突然按键失灵,这个时候你又没有多余的键盘备用。怎么办?是不是很抓狂!其实解决办法很简单,把不经常用的按键改成你失灵的按键就行了。今天,我就来为大家介绍一款特别实用的小工具——KeyboardShield    ......
  • 12.31
    读书笔记1:编程基础与核心概念主要内容:编程语言的选择与学习:书中首先讨论了如何选择编程语言。初学者可以根据自己的兴趣和目标选择语言,例如Python适合数据分析与人工智能,Java适合企业级开发等。学习语言的过程中,注重理解编程的基本语法和结构,如变量、控制流、函数等。算法与......
  • 2024.12.23-2024.12.31
    物理波\[u(x,t)=A\sin(kx-\omegat+\phi)\]1.位移(u(x,t))(u(x,t))表示在位置(x)和时间(t)时波的位移。它是描述波动状态的函数。2.振幅(A)(A)是波的振幅,表示波动的最大位移。振幅越大,波的能量通常也越大。3.波数(k)波数(k)......
  • 730. 大学生HTML5期末大作业 ―【可爱的草莓熊网站首页(1页)】 Web前端网页制作 html5
    目录一、网页概述二、网页文件三、网页效果四、代码展示1.html2.CSS五、总结1.简洁实用2.使用方便3.整体性好4.形象突出5.交互式强六、更多推荐欢迎光临仙女的网页世界!这里有各行各业的Web前端网页制作的案例,样式齐全新颖,并持续更新!感谢CSDN,提供了这么好的......
  • Java面试要点112 - Java延迟队列DelayQueue技术解析
    文章目录引言一、DelayQueue工作原理二、延迟队列的内部实现三、高级特性与优化3.1优先级控制3.2性能优化四、消息延迟投递系统五、定时任务调度实现六、异常处理与资源管理总结引言DelayQueue是Java并发包中一个专门用于延迟处理的阻塞队列实现,它根据延迟时间......
  • 第12章 对象销毁与垃圾回收
    第12章对象销毁与垃圾回收销毁(disposal),指文件、锁、操作系统句柄和非托管对象的释放,相应的功能由IDisposable提供;垃圾回收,指托管内存不再使用后的定期回收,由CLR执行。销毁通常是显示调用的;垃圾回收是自动执行的。12.1IDisposable​接口、Dispose​方法和Close​方法......
  • 第12章 对象销毁与垃圾回收
    第12章对象销毁与垃圾回收销毁(disposal),指文件、锁、操作系统句柄和非托管对象的释放,相应的功能由IDisposable提供;垃圾回收,指托管内存不再使用后的定期回收,由CLR执行。销毁通常是显示调用的;垃圾回收是自动执行的。12.1IDisposable​接口、Dispose​方法和Close​方法......
  • [Windows] 启动 Windows Update 服务失败,报:"Windows 无法启动 Windows Update 服务(
    1问题描述现象1:Windows10家庭版-服务(services.msc)-启动WindowsUpdate服务失败,报:"Windows无法启动WindowsUpdate服务(位于本地计算机上)错误126:找不到指定的模块"注:C:\Windows\System32\wuaueng.dll文件存在注:注册表regedit:计算机\HKEY_LOCAL......
  • 2024-12-31 估分
    政治客观题:33分。大题部分,四道大题几乎写满,有一道写了一半但答出了“两个结合”和“守正创新”。总体估分60分。英语客观题:阅读错2-3个(考虑到争议题),完型错5个,总扣-10分左右,排序不记得了,要么全对(+10分),要么全错(-10)。主观题:翻译都翻译出来,有小点-1、2分。作文部分,尽力而为,具体看老......
  • 2024-12-30 文件输出和Wireshark_Intro_v7.0
    fscanf与fprintf的区别函数用途示例fscanf从文件中读取格式化数据fscanf(fp,"记录数:%d\n",&count);fprintf向文件中写入格式化数据fprintf(fp,"记录数:%d\n",count);在读取或写入文件时,fscanf和fprintf的功能是通过指定格式化字符串来解析或生......