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

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

一、眼睛检测

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

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

opencv眼珠定位 opencv眼球识别_opencv眼珠定位

部分代码如下

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,前者的判断标准比较高,较为精确,但可能有些猫脸识别不出来,后者的判断标准比较低,只要类似猫脸就会被认为是猫脸,使用猫脸分类器不仅可以判断猫脸的位置,还可以识别图像中有几只猫

识别效果如下

opencv眼珠定位 opencv眼球识别_opencv眼珠定位_02

 

opencv眼珠定位 opencv眼球识别_opencv_03

部分代码如下

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

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

opencv眼珠定位 opencv眼球识别_计算机视觉_04

部分代码如下

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是检测汽车车牌的级联分类器文件,加载该文件就可以追踪图像中的车牌,下面通过一个实例来介绍如何实现此功能

opencv眼珠定位 opencv眼球识别_人工智能_05

部分代码如下

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()  # 释放所有窗体

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