1. 程式人生 > 其它 >6.2 閾值處理-- 自適應閾值處理

6.2 閾值處理-- 自適應閾值處理

技術標籤:OpenCVopencv計算機視覺深度學習機器學習

對於色彩均衡的影象來說,直接使用一個閾值就能完成對影象的閾值化處理。但是,有時影象的色彩是不均衡的,如果只用一個閾值,就無法得到清晰有效的閾值分割結果影象。

所以這一節我們介紹自適應閾值處理(閾值是變化的)。在閾值處理時,自適應閾值處理方式通過計算每個畫素點周圍臨近區域的加權平均值獲得閾值,並使用閾值對當前畫素進行處理。與普通閾值處理方法相比,自適應閾值處理能夠更好地處理明暗差異較大的影象。

函式原型:

dst = cv2.adaptiveThreshold(src, maxValue, adaptiveMethold, thresholdType,
blickSize, C)

引數:

  • dst:自適應閾值處理後的結果影象
  • src:原始影象
  • maxValue:最大值
  • adaptiveMethold:自適應方法
  • thresholdType:閾值處理方式,該值只能是cv.THRESH_BINARY,或者cv.THRESH_BINARY_INV
  • blockSize:計算畫素閾值時,在畫素周圍的取的臨近區域大小,通常取值為3, 5, 7
  • C:常量,自適應閾值等於每個畫素由引數blocksize所指定鄰域的加權平均值減去常量C

自適應閾值處理方法 adaptiveMethold 有兩種:

  • cv2.ADAPTIVE_THRESH_MEAN_C:鄰域所有畫素點的權重是一致的
  • cv2.ADAPTIVE_THRESH_GAUSSIAN_C:與鄰域各個畫素點到中心點的距離有關,通過高斯方程得到各個畫素點的權重值

舉例:

dst = cv2.adaptiveThreshold(src_img, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, 5, 3)