如何提取车牌中的数字?

Posted

技术标签:

【中文标题】如何提取车牌中的数字?【英文标题】:How to extract the numbers in license plate? 【发布时间】:2016-09-15 05:20:53 【问题描述】:

我正在使用OpenCV 来实现 ANPR 程序。

我试图提取盘子中的数字。示例代码如下

adaptiveThreshold(src_gray, binary_image, THESHOLD_MAX, ADAPTIVE_THRESH_GAUSSIAN_C, CV_THRESH_BINARY_INV, BLOCK_SIZE, MEAN_OFFSET);

CvBlobs blobs;
IplImage binary = binary_image;
IplImage *labelImg = cvCreateImage(cvGetSize(&binary), IPL_DEPTH_LABEL, 1);
unsigned int result = cvLabel(&binary, labelImg, blobs);
cvReleaseImage(&labelImg);
cvFilterByArea(blobs, DETECT_BLOB_AREA_MIN, DETECT_BLOB_AREA_MAX);

adaptiveThreshold() 和 `cvLabel() 几乎一切正常,但是有些图像给出的adaptiveThreshold() 输出不好,以下是一个示例。

盘子里有 3 个字母(以红色矩形为界)。

cvLabel() 无法检测到 3 个字母,因为它们与板绑定在一起。在这种情况下,我的算法无法提取这些字母。

有人告诉我在这种情况下有什么方法可以提取这 3 个字母吗?

非常感谢!

【问题讨论】:

【参考方案1】:

您可能想要使用侵蚀。 侵蚀可以去除图像的某些部分。腐蚀很可能会去除板装订和字母之间的连接部分。 http://docs.opencv.org/2.4/doc/tutorials/imgproc/erosion_dilatation/erosion_dilatation.html http://homepages.inf.ed.ac.uk/rbf/HIPR2/erode.htm

【讨论】:

谢谢!我尝试使用 Erosion,此图像具有适当的参数是可以的。但是它会丢失一些其他blob的前景像素,所以这不是申请这种情况的好方法。对我还有什么建议吗?谢谢!

以上是关于如何提取车牌中的数字?的主要内容,如果未能解决你的问题,请参考以下文章

车牌识别在交通智能化中的应用

Python-车牌识别

车牌识别OCR—易泊时代智慧城市解决方案模块

基于形态学处理的车牌定位和车牌提取matlab仿真

车牌识别的移动端与PC端比较

如何写公式提取车牌号