如何提取车牌中的数字?
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的前景像素,所以这不是申请这种情况的好方法。对我还有什么建议吗?谢谢!以上是关于如何提取车牌中的数字?的主要内容,如果未能解决你的问题,请参考以下文章