OpenCV检测眼睛、猫脸、行人、车牌实战(附Python源码)

简介: OpenCV检测眼睛、猫脸、行人、车牌实战(附Python源码)

需要源码和资源请点赞关注收藏后评论区留言私信~~~

OpenCV提供的级联分类器除了可以识别人脸之外,还可以识别其他一些具有明显特征的物体,如眼睛、行人等,下面介绍几个OpenCV自带的级联分类器的用法

一、眼睛检测

haarcascade_eye.xml是检测眼睛的级联分类器文件,加载该文件就可以追踪眼睛的分类器,下面通过一个实例来介绍如何实现这个功能

下面在图像的眼睛位置绘制红框,通过for循环实现

部分代码如下

import cv2
img = cv2.imread("peoples.png")  # 读取人脸图像
# 加载识别眼睛的级联分类器
eyeCascade = cv2.CascadeClassifier("cascades\\haarcascade_eye.xml")
eyes = eyeCade.detectMultiScale(img, 1.15)  # 识别出所有眼睛
for (x, y, w,  in eyes# 遍历所有眼睛的区域
    cv2.recn(img, (x, y), (x + w, y + h), (0, 0, 255), 4)  # 在图像中眼睛的位置绘制方框
cv2.imsho("g", img)  # 显示最终处理的效果
cv2.waiey() 下任何键盘按键后
cv2.destroyllWindows()  # 释放所有窗体

二、猫脸检测

opencv还提供了两个训练好的检测猫脸的级联分类器,分别是haarcascade_frontcatface.xml和haarcascade_frontcatface_extended.xml,前者的判断标准比较高,较为精确,但可能有些猫脸识别不出来,后者的判断标准比较低,只要类似猫脸就会被认为是猫脸,使用猫脸分类器不仅可以判断猫脸的位置,还可以识别图像中有几只猫

识别效果如下

部分代码如下

import cv2
img = cv2.imread(r"C:\Users\Administrator\Desktop\cat2.png")  # 读取猫脸图像
# 加载识别猫脸的级联分类器
catFaceCascade = cv2.("cascades\\haarcascade_frontalcatface_extended.xml")
catFace = catFaceCascade.detecMultiScale(img, 1.5, 4)  # 识别出所有猫脸
for (x, y, w, h)  catFce:  # 历所有猫脸的区域
    cv2.rectangle(img, (x, y), (x + w, y + h), (0, 0, 255), 5)# 在图像中猫脸的位置绘制方框
cv2.imshow("Where is your cat?", img)  # 显示最终处理的效果
cv2.waitKey()  按下任何键按键后
cv2.destroyAllindows)  # 释放所有窗体

三、行人检测

haarcascade_fullbody.xml是检测人体(正面直立全身或者背面直立全身)的级联分类器文件,加载该文件就可以追踪人体的分类器,下面通过一个实例介绍如何使用此功能

下面我们在一幅图像中找到行人的位置并用红框圈出

部分代码如下

import cv2
img = cv2.imread("monitoring.jpg")  # 读取图像
# 加载识别类人体的级联分类器
bodyCascade = c.CascadeClassifier("cascades\\haarcascade_fullbody.xml")
bodys = bodycade.detectMultiScale(img, 1.15, 4)  # 识别出所有人体
for (x, y, h) in bodys:  # 遍历所有人体区域
    cv2(img, (x, y), (x + w, y + h), (0, 0, 255), 5)# 在图像中人体的位置绘制方框
cv2.imshow("img" img)  # 显示最终处理的效果
cv2.waitKey()  # 按下任何键盘按键后
cv2.destroyAllWindows()  # 释放所有窗体

四、车牌检测

haarcascade_russian_plate_number.xml是检测汽车车牌的级联分类器文件,加载该文件就可以追踪图像中的车牌,下面通过一个实例来介绍如何实现此功能

部分代码如下

import cv2
img = cv2.imread("car.jpg")  # 读取车的图像
# 加载识别车牌的级联分类器
plateCascade = cv2.CascaClassifier("cascades\\haarcascade_russian_plate_number.xml")
plates = platede.detectMuale(img, 1.15, 4)  # 识别出所有车牌
for (x, y, w, h) ilates:  # 遍历所有车牌区域
    cv2.rectangle(img, (x, y), (x + w, y + h), (0, 0, 255), 5)  # 在图像中车牌的位置绘制方框
cv2.imow("img", img)  # 显示最终处理的效果
cv2.waKe # 按下任何键盘按键后
cv2.destroyAllWindows()  # 释放所有窗体

创作不易 觉得有帮助请点赞关注收藏~~~

相关文章
|
1月前
|
存储 算法 Linux
【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现
【实战项目】网络编程:在Linux环境下基于opencv和socket的人脸识别系统--C++实现
64 7
|
1天前
|
计算机视觉 Python
【Python实战】——Python+Opencv是实现车牌自动识别
【Python实战】——Python+Opencv是实现车牌自动识别
|
2天前
|
Ubuntu 编译器 C++
Ubuntu系统下编译OpenCV4.8源码
本文档介绍了在Ubuntu系统下编译和安装OpenCV4.8的简单步骤:首先,通过wget命令下载源码包,然后解压;接着,安装必要的编译器和第三方库支持;最后,在源码目录创建build文件夹,执行cmake和make安装。整个过程包括下载、安装依赖和编译安装三个主要步骤。
16 6
|
4天前
|
机器学习/深度学习 传感器 算法
【OpenCV】告别人工目检:深度学习技术引领工业品缺陷检测新时代
【OpenCV】告别人工目检:深度学习技术引领工业品缺陷检测新时代
|
6天前
|
算法 Serverless 计算机视觉
使用OpenCV和Python进行极线校正
使用OpenCV和Python进行极线校正
12 1
|
19天前
|
Python
【Python笔记】pip intall -e命令:让你的工程直接使用开源包的源码,可断点调试,修改源码!
【Python笔记】pip intall -e命令:让你的工程直接使用开源包的源码,可断点调试,修改源码!
19 0
|
19天前
|
存储 Python
Python 基于列表实现的通讯录管理系统(有完整源码)
Python 基于列表实现的通讯录管理系统(有完整源码)
13 0
|
24天前
|
机器学习/深度学习 算法 自动驾驶
opencv python 图片叠加
【4月更文挑战第17天】
|
26天前
|
机器学习/深度学习 算法 Linux
使用OpenCV在Python中进行图像处理
使用OpenCV在Python中进行图像处理
|
1月前
|
编解码 计算机视觉 Python
opencv 图像金字塔(python)
opencv 图像金字塔(python)