【HALCON】correlation_fft 関数について - 周波数領域での相関処理

【HALCON】correlation_fft 関数について - 周波数領域での相関処理

2024-08-25

2024-08-25

HALCONcorrelation_fft関数は、画像のフーリエ変換を利用して、2つの画像の相関を周波数領域で計算するためのツールです。この関数は、入力された画像をフーリエ変換し、その後、2つのフーリエ画像の相関を計算して、新しい画像を生成します。これにより、物体認識や画像の位置合わせなどのタスクに効果的に使用されます。

correlation_fft関数の概要

correlation_fft関数は、以下のステップで処理を行います。

  1. 画像のフーリエ変換: 入力画像を周波数領域に変換します。
  2. 相関計算: フーリエ変換された画像同士の相関を計算します。これは、1つ目の画像をそのまま使用し、2つ目の画像の複素共役を計算して掛け合わせることで行います。
  3. 逆フーリエ変換: 得られた結果を空間領域に戻します。

関数のシグネチャ

void correlation_fft(HObject : ImageFFT1, HObject : ImageFFT2, HObject* : ImageCorrelation);
  • ImageFFT1
    フーリエ変換された1つ目の入力画像。
  • ImageFFT2
    フーリエ変換された2つ目の入力画像(複素共役として使用される)。
  • ImageCorrelation
    出力される相関画像。

使用例

以下の例では、HALCONcorrelation_fft関数を使用して2つの画像の相関を計算し、新しい画像を生成しています。

HObject Image1, Image2, ImageFFT1, ImageFFT2, ImageCorrelation;

// 画像の読み込み
read_image(&Image1, "image1.png");
read_image(&Image2, "image2.png");

// 画像をフーリエ変換
fft_generic(Image1, &ImageFFT1, "to_freq", -1, "none", "dc_edge", "complex");
fft_generic(Image2, &ImageFFT2, "to_freq", -1, "none", "dc_edge", "complex");

// 画像の相関を計算
correlation_fft(ImageFFT1, ImageFFT2, &ImageCorrelation);

// 結果の表示
disp_obj(ImageCorrelation, window_handle);

このコードでは、2つの画像の相関を計算し、その結果を表示しています。

応用例

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

  • 画像の位置合わせ: 相関を利用して、2つの画像の位置を正確に合わせます。
  • 物体認識: 特定のパターンや物体を画像内で認識する際に使用されます。
  • パターンマッチング: 画像内の特定のパターンを検出するための相関計算に利用されます。

まとめ

HALCONcorrelation_fft関数は、画像処理における相関計算を効率的に行うためのツールです。フーリエ変換を使用することで、空間領域での処理よりも高速かつ精度の高い相関計算が可能になり、位置合わせや物体認識の分野で広く利用されています。

Recommend