Sto lavorando con Opencv per il mio progetto. Ho bisogno di convertire l'immagine qui sotto immagine sogliaImmagine di soglia usando opencv (Java)
ho provato questa funzione:
Imgproc.threshold(imgGray, imgThreshold, 0, 255, Imgproc.THRESH_BINARY + Imgproc.THRESH_OTSU);
Ma il risultato non era così buono, come si vede qui sotto
Così ho provato il adaptiveThreshold function
:
Imgproc.adaptiveThreshold(imgGray, imgThreshold, 255, Imgproc.ADAPTIVE_THRESH_GAUSSIAN_C, Imgproc.THRESH_BINARY, 11, 2);
ed è risultato:
Ho appena si aspettano un'immagine binaria con sfondo bianco e testo nero solo, nessuna zona nera o rumore (io non preferisco usare Photo.fastNlMeansDenoising
perché ci vuole un sacco di tempo). Per favore aiutami con una soluzione per questo.
Inoltre, sto usando Tesseract
per il riconoscimento giapponese ma il tasso di precisione non è buono. Hai qualche suggerimento su un OCR migliore per il giapponese o qualsivoglia metodo per migliorare la qualità di Tesseract?
E 'passato molto tempo da quando ho usato OpenCV, così ho può essere parlare di sciocchezze. Non puoi cercare i contorni e il bianco tutto al di fuori di un contorno e il nero tutto all'interno del contorno? L'immagine risultante dovrebbe essere abbastanza nitida e precisa, dato il tipo di input. –