Ich versuche, das Bild zu entweihen und dann das Skelett eines Bildes mit einer handschriftlichen Zeile zu extrahieren. Ich möchte, dass die Linie kontinuierlich und solide ist, aber die Methode, die ich verwende, funktioniert nicht und ist relativ langsam. Hier ist das Originalbild: Original ImageReinigen eines gescannten Bildes in opencv
Morphed Auf dem gemorphte Bild können Sie eine kleine Insel an der unteren rechten Seite.
Das verdünnte Bild von oben zeigt, dass die Linie nahe dem Ende gebrochen ist.
Jede andere Methode, um das gewünschte Ergebnis zu erzielen?
Mein Code sieht wie folgt aus:
int morph_elem = 2;
int morph_size = 10;
int morph_operator = 0;
Mat origImage = imread(origImgPath, CV_LOAD_IMAGE_COLOR);
medianBlur(origImage, origImage, 3);
cvtColor(origImage, origImage, COLOR_RGB2GRAY);
threshold(origImage, origImage, 0, 255, THRESH_OTSU);
Mat element = getStructuringElement(morph_elem, Size(2 * morph_size + 1, 2 * morph_size + 1), cv::Point(morph_size, morph_size));
morphologyEx(origImage, origImage, MORPH_OPEN, element);
thin(origImage, true, true, true);
Auf dem binären Bild (nach der Schwelle) können Sie 'findContour', und entfernen Sie kleine, z. mit 'contourArea' – Miki