0

まず、ここでこの質問をするのが適切かどうかわかりませんが、画像処理について質問があります。Matlab でパターン認識コードを書こうとしています。256x256 ピクセルの生データに大文字の "ABCD" が含まれるオブジェクト入力があり、256x256 ピクセルの生データにも大文字の "A" が含まれ、文字全体が同じ大きさのフィルターがあります。私のコードは次のようになります。

  1. まず、matlab でこれら 2 つの生データ ファイルを読み取り、これらの画像を表示します。
  2. オブジェクトとフィルターの2次元フーリエ変換を取り、これらの画像を表示します
  3. フィルターの共役を取り、
  4. それらを乗算します
  5. 4 を 2 次元フーリエ変換すると、
  6. 5の出力を表示します。

このコードは、入力と出力で A の自己相関を見つけることを目的としています。これらを実行している間、フィルター内の B、C、D、および A 間の相互相関が出力に含まれますが、その強度は A の自己相関よりも小さくなります。相関し、周波数領域でこれを行います。コードを書きましたが、正確に動作しません。特に、出力画像が正しくありません。また、生ファイルを Matlab にロードするための正しい関数も探します。私のコード:

%%%EE 520 HW 3
%%%Problem # 2
clear all; close all; clc;
load fA258.mat;
load fO.mat;
figure(1)
subplot(211)
imshow(o)
title('Image of the OBJECT');
subplot(212)
imshow(fa)
title('Image of the FILTER');
F=fft2(fa,256,256);
F1=fftshift(F);
F2=log(abs(F));
O=fft2(o,256,256);
O1=fftshift(O);
O2=log(abs(O));
f1=ifft2(F);
o1=ifft2(O);
figure(2)
subplot(211);
imshow(o1);
title('Check for Object');
subplot(212)
imshow(f1);
title('Check for Filter');
figure(3)
subplot(211)
imshow(log(abs(fftshift(O)) + 1), [])
title('FT of Object'); 
subplot(212)
imshow(log(abs(fftshift(F)) + 1), []) 
title('FT of Filter');
Fc=conj(F1);
Y=O1.*Fc;
y=fft2(Y);
figure(4)
subplot(211)
imshow(log(abs(fftshift(y)) + 1), [])
title('Output');
subplot(212)
imshow(y)

ありがとう。

4

1 に答える 1

1

手順 5 で逆フーリエ変換を行います。

于 2011-03-01T01:27:47.663 に答える