Ich verwende OpenCV mit Java, um die Bildverarbeitung durchzuführen.
Zuerst habe ich ein Bild eines Braille-Dokuments importiert:

Dann habe ich etwas Bildverarbeitung durchgeführt, um das Original zu binarisieren Bild. Ich habe gelesen, dass die wichtigen Schritte sind:
- Konvertieren Sie das Bild in Graustufen
- Reduzieren Sie die Rauschen
- Kantenkontrast verbessern
- Bild binarisieren
Code: Select all
public static void main(String args[]) {
Mat imgGrayscale = new Mat();
Mat image = Imgcodecs.imread("C:/Users/original_braille.jpg", 1);
Imgproc.cvtColor(image, imgGrayscale, Imgproc.COLOR_BGR2GRAY);
Imgproc.GaussianBlur(imgGrayscale, imgGrayscale, new Size(3, 3), 0);
Imgproc.adaptiveThreshold(imgGrayscale, imgGrayscale, 255, Imgproc.ADAPTIVE_THRESH_MEAN_C, Imgproc.THRESH_BINARY_INV, 5, 4);
Imgproc.medianBlur(imgGrayscale, imgGrayscale, 3);
Imgproc.threshold(imgGrayscale, imgGrayscale, 0, 255, Imgproc.THRESH_OTSU);
Imgproc.GaussianBlur(imgGrayscale, imgGrayscale, new Size(3, 3), 0);
Imgproc.threshold(imgGrayscale, imgGrayscale, 0, 255, Imgproc.THRESH_OTSU);
Imgcodecs.imwrite( "C:/Users/Jean-Baptiste/Desktop/Reconnaissance_de_formes/result.jpg", imgGrayscale );
}

Meiner Meinung nach können wir die Qualität dieses Bildes verbessern, um bessere Ergebnisse zu erzielen, aber ich bin es Ich habe keine Erfahrung mit den verschiedenen Bildverarbeitungstechniken. Kann ich die Qualität meiner Filter verbessern?
Danach möchte ich eine Segmentierung des Bildes durchführen, um die verschiedenen Zeichen dieses Dokuments zu erkennen. Ich möchte die verschiedenen Zeichen des Dokuments trennen, um sie in Text umzuwandeln.
Zum Beispiel habe ich die Trennlinien des Dokuments manuell gezeichnet:

Aber ich habe für diesen Schritt keine Lösungen gefunden. Gibt es eine Möglichkeit, dasselbe mit OpenCV zu tun?