1

Matlab で 2 つの画像間のユークリッド距離を計算したいと考えています。いくつかの例を見つけて試してみましたが、正しくありません。このユークリッド距離の結果は と の間に
あるはずですが、2 つの異なる方法で異なる解決策に到達しました。 最初のアルゴリズムでは、次のような 4 桁の数字と、このような他の数字が返され、逆に次のような数字に到達 しました。何が問題なのですか? 01
20000.007

これは、私が言及したアルゴリズムの 1 つです。

Im1 = imread('1.jpeg');
Im2 = imread('2.jpeg');

Im1 = rgb2gray(Im1);
Im2 = rgb2gray(Im2);

hn1 = imhist(Im1)./numel(Im1);
hn2 = imhist(Im2)./numel(Im2);

% Calculate the Euclidean distance
f = sum((hn1 - hn2).^2)
4

2 に答える 2

4

コードの最後の行には sqrt コマンドが必要です。

f = sum(sqrt(hn1-hn2).^2);

このリンクを確認してください

normコマンドを使用することもできます

f = norm(hn1-hn2);

これらのpost1post2は便利です。

于 2013-07-09T17:59:32.770 に答える