2016-05-18 18 views
0

私はOpenCVを使ってANPRプログラムを実装しています。ナンバープレートで番号を抽出する方法は?

私はプレートの数字を抽出しようとしました。サンプルコードすべてがadaptiveThreshold()と `cvLabel()とほぼOKです

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のouputをを(与えある以下は一例であり、良好ではありません。

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

関連する問題