如何使用OpenCV Python检测车牌

如何使用OpenCV Python检测车牌

我们将使用Haar级联分类器来检测图像中的车牌号。Haar级联分类器是一种有效的对象检测方法,它是一种基于机器学习的方法。

要训练一个车牌分类器,算法最初需要大量的正样本图像(带有车牌的图像)和负样本图像(不带车牌的图像)。分类器是通过这些正样本和负样本图像进行训练的。然后用它来检测其他图像中的对象(车牌)。我们可以使用已经训练好的Haar级联来进行对象检测。

如何下载Haarcascade

您可以在GitHub网站上找到不同的Haarcascade,网址为-

https://github.com/opencv/opencv/tree/master/data/haarcascades

要下载俄罗斯车牌Haarcascade,请点击 haarcascade_russian_plate_number.xml 文件。以原始格式打开它,并右键保存。

步骤

要在图像中检测车牌号,我们可以按照以下步骤进行:

  • 导入所需的库。在以下所有示例中,所需的Python库是 OpenCV 。请确保您已经安装了它。

  • 使用 cv2.imread() 读取输入图像。指定完整的图像路径。将图像转换为灰度图像。

  • 初始化Haarcascade分类器对象 plate_cascade = cv2.CascadeClassifier() 以用于车牌检测。传递Haar级联xml文件的完整路径。您可以使用Haar级联文件 haarcascade_russian_plate_number.xml 来检测图像中的车牌。

  • 使用 plate_cascade.detectMultiScale() 检测输入图像中的车牌。它以 (x,y,w,h) 格式返回检测到的车牌的坐标。

  • 使用 cv2.rectangle() 在原始图像中绘制围绕检测到的车牌的边界矩形。

  • 显示带有绘制了围绕车牌的边界矩形的图像。

让我们来看一些示例以更清楚地理解。

示例

在这个Python程序中,我们使用Haarcascade来检测输入图像中的车牌。

# import required libraries
import cv2
import numpy as np

# Read input image
img = cv2.imread("audi.jpg")

# convert input image to grayscale
gray = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

# read haarcascade for number plate detection
cascade = cv2.CascadeClassifier('haarcascades\haarcascade_russian_plate_number.xml')

# Detect license number plates
plates = cascade.detectMultiScale(gray, 1.2, 5)
print('Number of detected license plates:', len(plates))

# loop over all plates
for (x,y,w,h) in plates:

   # draw bounding rectangle around the license number plate
   cv2.rectangle(img, (x,y), (x+w, y+h), (0,255,0), 2)
   gray_plates = gray[y:y+h, x:x+w]
   color_plates = img[y:y+h, x:x+w]

   # save number plate detected
   cv2.imwrite('Numberplate.jpg', gray_plates)
   cv2.imshow('Number Plate', gray_plates)
   cv2.imshow('Number Plate Image', img)
   cv2.waitKey(0)
cv2.destroyAllWindows()

我们将使用这个图像作为该程序的 输入文件 -

如何使用OpenCV Python检测车牌

输出

在执行时,它将产生以下 输出 -

Number of detected license plates: 1

我们得到以下 输出 窗口 –

如何使用OpenCV Python检测车牌

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程