【HALCON】convol_image 関数について - 画像の畳み込み処理

【HALCON】convol_image 関数について - 画像の畳み込み処理

2024-08-25

2024-08-25

HALCONconvol_image関数は、画像に対して任意の線形フィルタを適用して相関(畳み込み)を行うためのツールです。この関数は、入力画像の各ピクセルに対してフィルターマスクを適用し、フィルタ処理後の結果を新しい画像として出力します。主にエッジ検出や平滑化など、さまざまな画像処理に活用されます。

convol_image関数の概要

convol_image関数は、以下の手順で畳み込み処理を行います。

  1. フィルターマスクの適用: 画像の各ピクセルにフィルターマスクを適用します。フィルターマスクはファイルから読み込むか、タプルとして渡します。
  2. フィルタリング方法の選択: 画像の端での処理方法を選択できます。例えば、cyclic(サイクリックな繰り返し)やmirrored(反転)などが選べます。
  3. 結果の出力: 畳み込み結果は新しい画像として出力されます。

使用例

以下の例では、HALCONconvol_image関数を使用して、画像に3x3のガウシアンフィルタを適用します。

HTuple Image, FilterMask, ImageConvol;

// 画像の読み込み
read_image(&Image, "input_image.png");

// 3x3ガウシアンフィルタの設定
FilterMask = [3, 3, 16, 1, 2, 1, 2, 4, 2, 1, 2, 1];

// 画像に畳み込みを適用
convol_image(Image, &ImageConvol, FilterMask, "mirrored");

// 結果の表示または保存
disp_image(ImageConvol, window_handle);

このコードでは、3x3のガウシアンフィルタを使用して画像を平滑化しています。フィルターマスクはタプルとして定義されていますが、ファイルから読み込むことも可能です。

応用例

convol_image関数は、以下のような応用で使用されています。

  • エッジ検出
    画像のエッジを強調するためのフィルタを適用して、物体の輪郭を抽出します。

  • ノイズ除去
    画像の高周波成分を削減するためのローパスフィルタを使用して、ノイズを除去します。

  • 平滑化
    ガウシアンフィルタなどを使用して、画像を平滑化し、ぼかし効果を与えます。

まとめ

HALCONconvol_image関数は、任意の線形フィルターマスクを使用して画像に畳み込みを適用するための強力なツールです。この関数を利用することで、エッジ検出やノイズ除去、画像の平滑化など、さまざまな画像処理が効率的に行えます。

Recommend