使用 OpenCV 进行车牌识别

Posted

技术标签:

【中文标题】使用 OpenCV 进行车牌识别【英文标题】:License plate recognition using OpenCV 【发布时间】:2010-12-30 14:31:16 【问题描述】:

我有一个项目需要使用 OpenCV 识别汽车的车牌。

我想加载一个数字或字母的图像,让 OpenCV 识别并打印到控制台。

有这样的功能吗?如果没有,我该怎么办?

注意:我正在处理灰度级

请帮忙,我必须从现在开始一周后


感谢您的快速回复

我正在使用 Microsoft Visual C++ 2008 Express Edition

关于库,我使用了以下库:

“C:\Program Files\OpenCV\lib” “C:\Program Files\OpenCV\cv\include” "C:\Program Files\OpenCV\cxcore\include" "C:\Program Files\OpenCV\otherlibs\highgui" “C:\Program Files\OpenCV\cvaux\include” “C:\Program Files\OpenCV\otherlibs\_graphics\include” "C:\Program Files\OpenCV\cv\src" "C:\Program Files\OpenCV\cxcore\src" "C:\Program Files\OpenCV\cvaux\src" "C:\Program Files\OpenCV\otherlibs\highgui" “C:\Program Files\OpenCV\otherlibs\_graphics\src”

【问题讨论】:

dtksoft.com/dtkanpr.php 你意识到,如果你不知道怎么做,一周的时间是不够的,是吗?当然,除非你的问题比看起来更简单。 【参考方案1】:

您可以使用 ROI 的颜色来创建过滤器。这将一直有效,直到车牌区域和车辆具有相同的颜色。

import cv2
import numpy as np

cap = cv2.VideoCapture(0)

while(1):
    _, frame = cap.read()
    hsv = cv2.cvtColor(frame, cv2.COLOR_BGR2HSV)

    lower_red = np.array([30,150,50])
    upper_red = np.array([255,255,180])

    mask = cv2.inRange(hsv, lower_red, upper_red)
    res = cv2.bitwise_and(frame,frame, mask= mask)

    cv2.imshow('frame',frame)
    cv2.imshow('mask',mask)
    cv2.imshow('res',res)

    k = cv2.waitKey(5) & 0xFF
    if k == 27:
        break

cv2.destroyAllWindows()
cap.release()

【讨论】:

【参考方案2】:

我最近一直在研究 OpenCV python 中 ANPR 的简单实现。你可以去看看here

它是在 Shogun 机器学习工具箱的帮助下编写的,带有 OpenCV 中的图像处理部分。一定要使用这些变量,因为它们需要对来自不同地区的汽车进行一些调整。

【讨论】:

【参考方案3】:

如果您想全面了解 OpenCV,您可以从这本书开始:Learning OpenCV Bradksi 等人。

【讨论】:

【参考方案4】:

不知道 opencv 中有哪些实现,但其他几个库是:

JavaANPR

DTK ANPR

【讨论】:

以上是关于使用 OpenCV 进行车牌识别的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV C++案例实战十《车牌号识别》

OpenCV+Python识别车牌和字符分割

基于SpringBoot+OpenCV的停车场车牌识别管理系统含人工智能识别算法(附源码论文)

基于SpringBoot+OpenCV的停车场车牌识别管理系统含人工智能识别算法(附源码论文)

基于OpenCV 的车牌识别

毕业设计 python opencv实现车牌识别 界面