我正在使用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个字母(以红色矩形为界)。
有3个字母无法用cvLabel()检测到,因为它们坚持用板绑定。在这种情况下,我的算法无法提取这些字母。
有人告诉我在这种情况下有什么方法可以提取这3个字母吗?
非常感谢!
答案 0 :(得分: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