2016-05-18 35 views
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); 

一切皆與adaptiveThreshold()和`cvLabel(幾乎確定),但也有一些圖像就給adaptiveThreshold的輸出中()不是很好,下面就是一個例子。

enter image description here

有在板3個字母(即與紅色矩形界定)。

那裏3個字母不能檢測與cvLabel(),因爲他們堅持板綁定。在這種情況下,我的算法無法提取這些字母。

有人告訴我有什麼方法可以在這種情況下提取這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

+0

謝謝!我試圖使用侵蝕,這是適當的這個圖像與適當的參數。但它會丟失其他斑點的一些前景像素,所以申請這種情況並不是一個好方法。對我有更多的建議嗎? 謝謝! – TTGroup