Ich arbeite an einer Spring-MVC-Anwendung, in die wir derzeit OCR-Funktionalität integrieren. OCR haben die Angewohnheit, Wild-Zeichen für falsche Erkennungen und wenn ein Bild im Hintergrund ist, zu werfen. Nach der Verarbeitung des Bildes haben wir sehr gute Daten zur Verfügung, aber es gibt immer noch einige Fehler. Wir möchten den Ausgang wie folgt verarbeitenJava: So entfernen Sie alle Zeichen in String außer a-z, Ziffern und deutschen Zeichen
- Entfernen Sie alle einzelnen Zeichen aus der Ausgabe String.
- Entfernen Sie alle Zeichen außer A-Z, a-z, deutsche Zeichen, d. H. Äöü, ÄÖÜ, ß.
- Leerzeichen und Ziffern sollten nicht geändert werden.
Code:
File imageFile = new File(fileLocation);
BufferedImage img = ImageIO.read(imageFile);
BufferedImage blackNWhite = new BufferedImage(img.getWidth(),img.getHeight(),BufferedImage.TYPE_BYTE_BINARY);
Graphics2D graphics = blackNWhite.createGraphics();
graphics.drawImage(img, 0, 0, null);
String blackAndWhiteImage = zipLocation + String.valueOf(new BigInteger(130, random).toString(32))+".png";
File outputfile = new File(blackAndWhiteImage);
ImageIO.write(blackNWhite, "png", outputfile);
ITesseract instance = new Tesseract();
// Point to one folder above tessdata directory, must contain training data
instance.setDatapath("/usr/share/tesseract-ocr/");
// ISO 693-3 standard
instance.setLanguage("deu");
String result = instance.doOCR(outputfile);
//System.out.println(result);
result = result.replaceAll("\\P{ASCII}","");
System.out.println("Result is "+result);
return result;
Danke.
aktualisieren
Wild von der Regex links Zeichen:
|
| '(°Ul")
_} °
=# '
()
...................................__+_......_._._.__._._._+._._.
Regex wäre '' '}' ' – osanger