Ich verwende OpenCV
, um das ANPR-Programm zu implementieren.Wie die Nummern im Nummernschild zu extrahieren?
Ich habe versucht, die Zahlen in der Platte zu extrahieren. Der Beispielcode ist unter
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);
Alles fast in Ordnung ist mit der adaptiveThreshold()
und `cvlabel(), jedoch gibt es einige Bilder dem Ausgang von adaptiveThreshold() geben ist nicht gut, die folgende ist ein Beispiel.
Es gibt 3 Buchstaben, die in der Platte (die mit den roten Rechtecken begrenzt sind).
dort 3 Buchstaben kann nicht mit cvLabel() erkennen, weil sie Stick mit Platte gebunden sind. In diesem Fall kann mein Algorithmus diese Buchstaben nicht extrahieren.
Jemand sagen mir, es gibt eine Möglichkeit, diese 3 Buchstaben in diesem Fall zu extrahieren?
Vielen Dank!
danke! Ich habe versucht, Erosion zu verwenden, es ist in Ordnung für dieses Bild mit dem richtigen Parameter. Aber es macht einige Vordergrundpixel anderer Blobs verloren, also ist es nicht gut, sich für diesen Fall zu bewerben. Noch ein Vorschlag für mich? Vielen Dank! – TTGroup