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

OpenCVで画像に逆ゼロしきい値処理(THRESH_TOZERO_INV)を適用する方法

この記事では、OpenCVを使用して画像に逆ゼロしきい値処理を適用する方法を解説します。

しきい値処理(閾値処理)とは、各ピクセルの値をあらかじめ設定したしきい値と比較し、その結果に応じてピクセルの値を変換する画像処理手法です。しきい値より小さいピクセルには特定の値を、しきい値より大きいピクセルには別の値を割り当てます。

逆ゼロしきい値処理では、輝度値がしきい値より大きいピクセルがすべて0(黒)に設定され、しきい値以下のピクセルは元の輝度値がそのまま保持されます。この処理には cv2.THRESH_TOZERO_INV フラグを使用します。

元画像

OpenCVで画像に逆ゼロしきい値処理(THRESH_TOZERO_INV)を適用する方法

処理の流れ(アルゴリズム)

ステップ1:cv2 をインポートする。
ステップ2:しきい値(threshold_value)と最大値(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_TOZERO_INV)
cv2.imshow('InverseZeroThresholding', image)

コードのポイント

  • threshold_value = 120:しきい値として120を設定しています。
  • max_val = 255:最大値ですが、THRESH_TOZERO_INVでは実際には使用されません。
  • cv2.THRESH_TOZERO_INV:しきい値より大きい輝度値を持つピクセルを0にし、それ以外のピクセルは元の値のままにします。

実行結果

OpenCVで画像に逆ゼロしきい値処理(THRESH_TOZERO_INV)を適用する方法

実行結果を見ると、元画像のうち輝度値が120より大きかった領域が黒く塗りつぶされ、それ以外の暗い部分だけが残っていることが確認できます。このように逆ゼロしきい値処理は、明るい領域を除去して特定の範囲の輝度のみを抽出したい場合などに活用できます。

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

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

  2. OpenCVで画像を読み込んで表示する方法を解説

    本記事では、OpenCVライブラリを使って画像を読み込み、画面に表示する方法をわかりやすく解説します。OpenCVは、リアルタイムのコンピュータビジョン処理を主な目的としたオープンソースのプログラミングライブラリです。画像処理や機械学習の分野で広く利用されており、Pythonとの相性も抜群です。事前準備画像を読み込む前に、対象となる画像ファイルがプログラムと同じディレクトリ(フォルダ)内に保存されていることを確認してください。別の場所にある場合は、絶対パスまたは相対パスで正しく指定する必要があります。処理の手順(アルゴリズム)OpenCVで画像を読み込んで表示する流れは、以下の3ステップです。