フーリエ記述子を使用して、Matlab の画像の形状を区別しようとしています。私がやりたいことは次のとおりです。1.各画像のフーリエ記述子を生成します。2. これらのフーリエ記述子間のユークリッド距離を計算して形状を比較します。
私の問題は、フーリエ記述子を計算した結果を幾何学的変換(回転とスケーリングなど)の影響を受けないようにすることができないことです。
私が現在使用しているコードは、このリンクにある「ゴンザレスの matlab バージョン」です。これを行うことで結果を正規化しようとしました:
% Normalization
DC = f(1);
f = f(2:11); % getting the first 20 & deleting the dc component
f = abs(f) ; % use magnitudes to be invariant to translation & rotation
f = f/DC; % devide the fourier coeffients by the DC-coefficient to be invariant to scale
しかし、思ったほどうまくいかなかったと思います。同じ画像でも向きや縮尺を変えると結果が異なります。
私はこの質問に数日間閉じ込められました。私はどんな提案も感謝します、事前にすべてに感謝します!