0

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);

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

在此处输入图像描述

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

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

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

非常感谢!

4

1 回答 1

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

于 2016-05-18T16:11:03.453 回答