Az adaptív, vagy más néven lokális műveletek küszöbérték paraméterét a vizsgált képpont egy lokális környezetének intenzitásértékei alapján határozzuk meg, vagyis ez képpontonként változó lehet. Az érték meghatározása után a művelet végrehajtása ugyanúgy megy, mint globális esetben: kritériumellenőrzés után módosítás, ha szükséges.
Az OpenCV cv2.adaptiveThreshold() függvényének használati módja:
result = cv2.adaptiveThreshold(src, maxValue, adaptiveMethod, thresholdType, blockSize, C)
result |
Az eredmény képmátrix. |
src |
Bementi kép. |
maxValue |
A kritériumnak megfelelő helyeken a képpont új intenzitásértéke, hasonlóan a globális küszöböléshez. |
adaptiveMethod |
ADAPTIVE_THRESH_MEAN_C vagy ADAPTIVE_THRESH_GAUSSIAN_C lehet.
Az első esetben a lokális küszöbérték a képpont környezetében található intenzitásértékek átlagaként számítódik ki. A második esetben a súlyozott összeget, ahol a súly értéke a vizsgált ponttól való távolság növekedésével csökken a Gauss függvénynek megfelelően.
|
thresholdType |
THRESH_BINARY vagy THRESH_BINARY_INV lehet, tehát csak küszöbölni tud! |
blockSize |
A vizsgált képpont mekkora környezetét vegyük figyelembe a küszöbérték meghatározásakor (blockSize x blockSize). Páratlan legyen az értéke! |
C |
A vizsgált területen található intenzitások (súlyozott) átlagából kivonjuk a C konstans értékét, mielőtt a küszöbértékkel összehasonlítanánk. |
Sötétebb és világosabb lokális környezetek:

