2015-07-08 7 views
9

Sto lavorando con Opencv per il mio progetto. Ho bisogno di convertire l'immagine qui sotto immagine sogliaImmagine di soglia usando opencv (Java)

Original Image

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

threshold

Così ho provato il adaptiveThreshold function:

Imgproc.adaptiveThreshold(imgGray, imgThreshold, 255, Imgproc.ADAPTIVE_THRESH_GAUSSIAN_C, Imgproc.THRESH_BINARY, 11, 2); 

ed è risultato:

adaptiveThreshold

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?

+0

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. –

risposta

12

adaptiveThreshold è la scelta giusta qui. Solo bisogno di un accordatura litte. Con questi parametri (è C++, ma si può facilmente tradurre in Java)

Mat1b gray= imread("path_to_image", IMREAD_GRAYSCALE); 
Mat1b result; 
adaptiveThreshold(gray, result, 255, ADAPTIVE_THRESH_MEAN_C, THRESH_BINARY, 15, 40); 

l'immagine risultante è:

enter image description here

+0

Grazie mille. Questo funziona perfettamente per me. Non capisco il significato dell'ultimo parametro (40). Potresti spiegarlo? –

+0

@BeeBee È una costante sottratta dalla media. Leggi [opencv doc] (http://docs.opencv.org/modules/imgproc/doc/miscellaneous_transformations.html#adaptivethreshold) per ulteriori informazioni – Miki

+0

So che è un vecchio thread ma tu mi hai aiutato anche tu. –