Python
 Computer >> コンピューター >  >> プログラミング >> Python

OpenCVで画像に二値化しきい値処理を実行する方法

この記事では、OpenCVを使用して画像に二値化しきい値処理(Binary Thresholding)を実行する方法を解説します。

しきい値処理とは、画像内の各ピクセルの値を指定したしきい値と比較し、その結果に応じてピクセルの値を変更する処理のことです。ピクセルの値がしきい値より小さい場合にはある値が割り当てられ、大きい場合には別の値が割り当てられます。

二値化しきい値処理の場合、ピクセルの値がしきい値より小さければ 0(黒) に設定され、しきい値より大きければ 255(白) に設定されます。これにより、画像は黒と白のみの2階調に変換されます。

元画像

OpenCVで画像に二値化しきい値処理を実行する方法

アルゴリズム

ステップ1:cv2 をインポートする。
ステップ2:しきい値(threshold)と最大値(max_val)を定義する。
ステップ3:これらのパラメータを cv2.threshold に渡し、実行したいしきい値処理の種類を指定する。
ステップ4:出力を表示する。

サンプルコード

import cv2

image = cv2.imread('testimage.jpg')
threshold_value = 120
max_val = 255
ret, image = cv2.threshold(image, threshold_value, max_val, cv2.THRESH_BINARY)
cv2.imshow('BinaryThresholding', image)

出力

OpenCVで画像に二値化しきい値処理を実行する方法

解説

プログラム内の ret 変数には、実際に使用されたしきい値が返されます。しきい値より大きい値を持つピクセルはすべて max_val、つまり 255 に置き換えられます。

なお、ウィンドウを正しく表示して閉じるためには、cv2.imshow() の後に cv2.waitKey(0)cv2.destroyAllWindows() を呼び出すのが一般的です。また、しきい値の値(ここでは120)を変更することで、白と黒の境界線を調整でき、画像の特徴に応じて最適な二値化結果を得ることができます。

  1. OpenCVで画像に楕円を描画する方法|cv2.ellipse()の使い方を解説

    この記事では、Pythonの画像処理ライブラリ「OpenCV」を使って、画像の上に楕円を描画する方法を解説します。楕円の描画には、OpenCVが提供する cv2.ellipse() 関数を使用します。元画像アルゴリズム(処理の手順)楕円を描画するまでの流れは、以下の手順になります。ステップ1: cv2 をインポートする。 ステップ2: imread() で画像を読み込む。 ステップ3: 楕円の中心座標を設定する。 ステップ4: 楕円の長軸・短軸の長さ(axesLength)を設定する。 ステップ5: 楕円の回転角度(angle)を設定する。 ステップ6: 描画を開始する角度と終了する角度を設定

  2. OpenCVを使って画像に線を描画する方法

    この記事では、OpenCVのcv2.line()関数を使用して、画像にシンプルな線を描画する方法を解説します。線の始点・終点・太さ・色を自由に指定できるので、図形の描画や注釈の追加など、さまざまな場面で活用できます。 元画像 処理の流れ(アルゴリズム) ステップ1:cv2をインポートする。 ステップ2:imread()で画像を読み込む。 ステップ3:image.shapeメソッドで画像のサイズ(高さ・幅・チャンネル数)を取得する。 ステップ4:線の始点を定義する。 ステップ5:線の終点を定義する。 ステップ6:線の太さを定義する。 ステップ7:cv2.line()関数で線を描画し、ステップ3