OpenCV——Haar Cascade进行对象检测

import cv2
import sys

img=cv2.imread('2.jpg')

#加载分类器
face_haar=cv2.CascadeClassifier("data/haarcascades/haarcascade_frontalface_default.xml")
eye_haar=cv2.CascadeClassifier("data/haarcascades/haarcascade_eye.xml")

#把图像转为黑白图像
gray_img=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)

#检测图像中所有的脸

faces=face_haar.detectMultiScale(gray_img,1.3,5)
print(faces)

for face_x,face_y,face_w,face_h in faces:
    cv2.rectangle(img, (face_x, face_y), (face_x+face_w, face_y+face_h), (0,255,0), 2)
    # 眼长在脸上
    roi_gray_img=gray_img[face_y:face_y+face_h,face_x:face_x+face_w]
    roi_img=img[face_y:face_y+face_h,face_x:face_x+face_w]
    eyes=eye_haar.detectMultiScale(roi_gray_img,1.3,5)
    for eye_x,eye_y,eye_w,eye_h in eyes:
        cv2.rectangle(roi_img, (eye_x,eye_y), (eye_x+eye_w, eye_y+eye_h), (255,0,0), 2)

cv2.imshow('img', img)
cv2.waitKey(0)
 
cv2.destroyAllWindows()

使用OpenCV的HAAR Cascade检测车牌大致位置,需要经过以下步骤: 1. 加载车牌识别的级联分类器模型,可以使用OpenCV提供的默认模型,也可以训练自己的模型。 2. 加载待检测的图像,并将其转换为灰度图像,以便进行后续的处理。 3. 使用级联分类器模型对灰度图像进行检测,得到车牌区域的坐标信息。 4. 根据得到的车牌区域坐标信息,可以将车牌区域在图像中进行标记,以便进一步的处理和识别。 下面是一份使用OpenCV的Python代码示例,用于检测车牌的大致位置: ```python import cv2 # 加载级联分类器模型 cascade_classifier = cv2.CascadeClassifier("haarcascade_russian_plate_number.xml") # 加载待检测的图像 img = cv2.imread("car.jpg") # 转换为灰度图像 gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 对灰度图像进行车牌检测 plates = cascade_classifier.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5, minSize=(50, 50), flags=cv2.CASCADE_SCALE_IMAGE) # 在原图像上标记车牌区域 for (x, y, w, h) in plates: cv2.rectangle(img, (x, y), (x+w, y+h), (0, 255, 0), 2) # 显示结果 cv2.imshow("Plate Detection", img) cv2.waitKey(0) cv2.destroyAllWindows() ``` 其中,`haarcascade_russian_plate_number.xml`是OpenCV提供的俄罗斯车牌识别模型,可以在OpenCV的官方GitHub仓库中找到。`detectMultiScale`函数中的参数可以根据具体情况进行调整,以满足不同场景下的需求。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值