2012-04-18 6 views
12

ho questa foto:algoritmo Niblack per binarizzazione documento

enter image description here

e sto cercando di fare binarizzazione documento utilizzando l'algoritmo Niblack Ho implementato il semplice algoritmo Niblack

T = significherebbe + K * standardDiviation

e che è stato è risultato:

enter image description here

il problema è che ci sono alcune parti dell'immagine in cui la finestra non contiene oggetti in modo da rilevare il rumore come oggetti ed elaborarli.

ho cercato di applicare il filtro sfocatura poi thresholding globale che era il risultato:

enter image description here

che suole essere risolto da qualsiasi altro filtro Credo che l'unica soluzione impedisce l'algoritmo di rilevare rumore globale se la finestra è libera dall'oggetto

sono interessato a farlo utilizzando l'algoritmo di niblack non utilizzando altri algoritmi quindi qualche suggerimento?

+0

Vedere anche: http://liris.cnrs.fr/christian.wolf/software/binarize/ –

risposta

11

ho provato algoritmo sauvola in questa sezione Carta Adaptive document image binarization J. Sauvola*, M. PietikaKinen 3.3

si tratta di una versione modificata dell'algoritmo Niblack che utilizza un'equazione modificata di Niblack enter image description here

che ha restituito un abbastanza buone risposte: enter image description here

così come ho provato un'altra modifica di Niblack che è implementata in this paper nell'algoritmo 5.5 No. 9a: Université de Ly on, INSA, France (C. Wolf, JM Jolion)

che ha restituito un buon risultato così:

enter image description here

3

hai guardato qui: https://stackoverflow.com/a/9891678/105037

local_mean = imfilter(X, filt, 'symmetric'); 
local_std = sqrt(imfilter(X .^ 2, filt, 'symmetric')); 
X_bin = X >= (local_mean + k_threshold * local_std); 

non vedo molte opzioni qui se ti ostini a usare Niblack. È possibile modificare la dimensione e il tipo del filtro e la soglia.

BTW, sembra che l'immagine originale abbia colori. Questa informazione può migliorare significativamente il rilevamento del testo nero.

1

Ci sono diversi metodi che possono aiutare in questa situazione:

  1. Naturalmente, è possibile modificare algoritmo esso auto =)
  2. Inoltre è possibile applicare solo i filtri morfologici: prima si applica il massimo nella finestra e dopo - minimo.È necessario regolare le dimensioni di Windows per ottenere un risultato migliore, vedere wiki.
  3. È possibile scegliere il modo più difficile ma migliore e provare a migliorare lo schema di Niblack. È necessario aumentare le dimensioni della finestra di Niblack se la deviazione standard è inferiore a un numero fisso (dovrebbe essere regolato).