閾値
読み: しきいち
画像処理でピクセル値を 2 値 (白黒) や複数クラスに分類する際の境界となる基準値。二値化やセグメンテーションの基盤。
閾値 (スレッショルド) とは、画像のピクセル値を特定の基準で分類するための境界値である。最も基本的な用途は二値化 (Binarization) で、グレースケール画像の各ピクセルを閾値と比較し、白か黒かに振り分ける。文字認識 (OCR)、物体検出の前処理、医療画像の病変抽出など幅広い場面で使われる。
閾値の決定方法には以下の代表的な手法がある。
- 固定閾値: ユーザーが手動で値を指定する最も単純な方法。照明条件が一定の環境で有効
- 大津の方法 (Otsu's method): ヒストグラムのクラス間分散を最大化する閾値を自動算出する。最も広く使われる自動閾値決定法
- 適応的閾値: 画像を小領域に分割し、各領域ごとに局所的な閾値を計算する。照明ムラがある画像に有効
- Triangle 法: ヒストグラムのピークと端点を結ぶ直線からの最大距離で閾値を決定する。単峰性分布に適する
OpenCV での実装例を示す。
cv2.threshold(img, 127, 255, cv2.THRESH_BINARY)- 固定閾値 127 で二値化cv2.threshold(img, 0, 255, cv2.THRESH_OTSU)- 大津の方法で自動決定cv2.adaptiveThreshold(img, 255, cv2.ADAPTIVE_THRESH_GAUSSIAN_C, cv2.THRESH_BINARY, 11, 2)- 適応的閾値
閾値処理の精度は前処理に大きく依存する。ノイズ除去 (ガウシアンブラー)、コントラスト強調 (ヒストグラム平坦化)、照明補正を事前に適用することで、閾値による分離精度が向上する。多値閾値処理 (Multi-level thresholding) では複数の閾値を設定し、画像を 3 つ以上の領域に分割することも可能である。