【HALCON】convol_image 関数について - 画像の畳み込み処理
2024-08-25
2024-08-25
HALCON
のconvol_image
関数は、画像に対して任意の線形フィルタを適用して相関(畳み込み)を行うためのツールです。この関数は、入力画像の各ピクセルに対してフィルターマスクを適用し、フィルタ処理後の結果を新しい画像として出力します。主にエッジ検出や平滑化など、さまざまな画像処理に活用されます。
convol_image関数の概要
convol_image
関数は、以下の手順で畳み込み処理を行います。
- フィルターマスクの適用: 画像の各ピクセルにフィルターマスクを適用します。フィルターマスクはファイルから読み込むか、タプルとして渡します。
- フィルタリング方法の選択: 画像の端での処理方法を選択できます。例えば、
cyclic
(サイクリックな繰り返し)やmirrored
(反転)などが選べます。 - 結果の出力: 畳み込み結果は新しい画像として出力されます。
使用例
以下の例では、HALCON
のconvol_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
関数は、以下のような応用で使用されています。
-
エッジ検出
画像のエッジを強調するためのフィルタを適用して、物体の輪郭を抽出します。 -
ノイズ除去
画像の高周波成分を削減するためのローパスフィルタを使用して、ノイズを除去します。 -
平滑化
ガウシアンフィルタなどを使用して、画像を平滑化し、ぼかし効果を与えます。
まとめ
HALCON
のconvol_image
関数は、任意の線形フィルターマスクを使用して画像に畳み込みを適用するための強力なツールです。この関数を利用することで、エッジ検出やノイズ除去、画像の平滑化など、さまざまな画像処理が効率的に行えます。