【Python × OpenCV4】適応的閾値処理を実装。
はじめに
画像処理エンジニア検定:エキスパートの学習用のメモ。
使用環境
● Anaconda
● Spyder4
● macOS High Sierra 10.13.6
● Python
● OpenCV
適応的閾値
OpenCVで適応的閾値処理をするには、下記の関数を使用します。
cv2.adaptiveThreshold(src, maxValue, adaptiveMethod, thresholdType, blockSize, C)
組んだプログラムは、下記になります。
import cv2
imageName = input("画像名を入力するしてください。\n")
img = cv2.imread("./img/" + imageName, cv2.IMREAD_GRAYSCALE)
src = img
maxValue = int(input("最大値を整数値で入力して下さい。\n"))
adaptiveMethod = cv2.ADAPTIVE_THRESH_GAUSSIAN_C
thresholdType = cv2.THRESH_BINARY
blockSize = int(input("ブロックサイズを整数値で入力して下さい。\n"))
C = int(input("近傍領域を整数値で入力して下さい。\n"))
def adaptiveThreshold(src, maxValue, adaptiveMethod, thresholdType, blockSize, C):
dst = cv2.adaptiveThreshold(src, maxValue, adaptiveMethod, thresholdType, blockSize, C)
filename = "./img/" + input("画像名を入力するしてください。\n")
cv2.imwrite(filename, dst)
adaptiveThreshold(src, maxValue, adaptiveMethod, thresholdType, blockSize, C)
実行結果は、下記になります。
![](https://assets.st-note.com/img/1650686124304-O0qR43Nspu.png?width=1200)
![](https://assets.st-note.com/img/1650686152808-vUx5LmyTiK.png?width=1200)
![](https://assets.st-note.com/img/1650686685653-KrkxYVYVZF.png?width=1200)
![](https://assets.st-note.com/img/1650686692748-YVXE88FKhT.png?width=1200)
適応的閾値のパラメータは、下記になります。
● src = 入力画像
● maxValue =最大値
● adaptiveMethod = 適応的閾値アルゴリズム
● thresholdType = 閾値処理
● blockSize = ブロックサイズ
● C = 近傍領域
おわりに
cv2.adaptiveThreshold(src, maxValue, adaptiveMethod, thresholdType, blockSize, C)を使用して適応的閾値処理が出来ました。