edit-error in calculating dsit

I have the matrices as below
A1=Ds(121:140, 121:140, 1:7)
A2=Ds(121:140, 121:140,7)
plz tell how to find the euclidean distance ,like in my previous post

 Akzeptierte Antwort

Junaid
Junaid am 5 Feb. 2012

2 Stimmen

Well I guess you want to get single scalar value as distance of A2 for each Chanel in A1. If so then I try to do in steps. There are multiple ways but I would do like this.
First i will make A2 as single column vector
n_A2 = A2(:);
then I will make one matrix by A1, where each column is one image.
n_A1 = zeros(length(n_A2), size(A1,3)); % this creates matrix of rows as length of and columns are equal to number of images in A1
for i=1:size(A1,3)
t= A1(:,:,i);
n_A1(:,i) = t(:);
end
and Finally now compute the Euclidean distance n_A2 with all images in n_A1
A= repmat(n_A2,1,size(n_A1,2));
E_distance = sqrt(sum((A-n_A1).^2));
Now E_distance contains the output distance. There must be one value 0 as you are taking query image from the same pool of images.
I wish it works for you. I executed this on small example. Once you get A1 and A2 from Ds. then copy paste the following code below. It is the same code written above.
n_A2 = A2(:);
n_A1 = zeros(length(n_A2), size(A1,3));
for i=1:size(A1,3)
t= A1(:,:,i);
n_A1(:,i) = t(:);
end
A= repmat(n_A2,1,size(n_A1,2));
E_distance = sqrt(sum((A-n_A1).^2));

Weitere Antworten (1)

Junaid
Junaid am 5 Feb. 2012

0 Stimmen

Could you please tell what is Ds ? for simplicity make Ds random matrix and then simplify your questions.

1 Kommentar

kash
kash am 5 Feb. 2012
DS is an 3d image like cube ,formed from 2d slice

Melden Sie sich an, um zu kommentieren.

Kategorien

Mehr zu Read, Write, and Modify Image finden Sie in Hilfe-Center und File Exchange

Tags

Gefragt:

am 5 Feb. 2012

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by