使用 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 进行车牌识别的主要内容,如果未能解决你的问题,请参考以下文章
基于SpringBoot+OpenCV的停车场车牌识别管理系统含人工智能识别算法(附源码论文)