Működése
A Niblack algoritmus egy népszerű lokális küszöbölő/vágó eljárás. Egy lokális környezetben intenzitásérték statisztikát számolunk (átlag és szórás), és ez alapján határozzuk meg a lokális küszöböt: az átlagból kivonásra kerül a szórás k súllyal vett értéke.
A niBlackThreshold() függvény az OpenCV contrib csomagjában található, vagyis nem része az alapcsomagnak! Ha használni szeretnénk, akkor az OpenCV contrib változatát telepítsük! A cv2 csomagon belül az ximgproc alcsomagnév megadása szükséges még. Használata hasonló a korábbi függvényekéhez:
dst = cv2.ximgproc.niBlackThreshold(src, maxVal, type, blockSize, k[, _dst[, binarizationMethod[, r]]])
A k paraméter a küszöbölés viselkedését befolyásolja. Javasolt értéke egy célszerűen [0, 1] közötti lebegőpontos szám, de más, akár negatív értékekkel is dolgozhatunk.
A módszer több változata is elterjedt, amelyek az átlag és szórás értékből más módon állítják elő a lokális küszöböt. Ezek közül a binarizationMethod opcionális paraméterrel választhatunk. Lehetséges értékek:
- cv2.ximgproc.BINARIZATION_NIBLACK
- cv2.ximgproc.BINARIZATION_SAUVOLA
- cv2.ximgproc.BINARIZATION_WOLF
- cv2.ximgproc.BINARIZATION_NICK
A Sauvola módszerhez egy plusz paraméter értéket is megadhatunk (r, alapértéke 128, a szórás érték dinamikus tartományát adja).
Dokumentáció: