c++ - 如何提取车牌号码?

标签 c++ opencv automatic-license-plate-recognition

我正在使用 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() 的输出不好,下面是一个例子。

enter image description here

盘子里有 3 个字母(用红色矩形包围)。

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

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

非常感谢!

最佳答案

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

关于c++ - 如何提取车牌号码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37304401/

相关文章:

c++ - 使用带有 vector 和 vector 函数的模板

python - 在 Windows 中安装 Tesseract

matlab - 训练新的 LatentSVMDetector 模型

image - 如何从图像中识别车辆牌照/车牌(ANPR)?

python - 我们可以训练 haar-cascade 来检测数字和字母吗?

c++ - 如何防止捕获的 "this"的悬挂指针被 shared_ptr 破坏?

c++ - 为 CUDA 编程计算设备和主机的执行时间

c++ - 访问冲突写入位置 0xXXXXXXXX

opencv - EDISON 和 cv PyrMeanShiftFiltering 有什么区别

matlab - 车牌自动识别系统