How to find euclidean distances between cell entries of two RGB matrices?
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
I have two RGB images A and B. Image A is 47x47x3 and image B is 1x456x3. I need to find the euclidean distances between all the entries of image A and all entries of image B. Then as a second goal I need to find for each cell in image A which cell in image B its closest to in euclidean distance. Does anyone has any suggestions? The things I tried have unfortunately failed.
3 Kommentare
Antworten (1)
Jan
am 16 Nov. 2020
A = rand(47, 47, 3);
B = rand(1, 456 3);
AB = reshape(A, 47*47, 1, 3) - B;
Dist = vecnom(AB, 2, 3);
And now you want to find the minimal values in each column. Afterwards you can use ind2sub to convert the linear indices back to the indices of A.
Another option is a simple loop:
Result = zeros(size(A));
for row = 1:47
for col = 1:47
dist = vecnorm(A(col, row, :) - B, 2, 3);
[~, index] = min(dist);
Result(col, row) = index;
end
end
2 Kommentare
Jan
am 18 Nov. 2020
I cannopt guess, which problem you have. So please post the relevant part of your code and ask a specific question.
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!