Say I have the following two matrices:
>> x = [1 4 3; 6 4 3; 6 9 3; 2 4 3; 5 4 0; 5 3 1; 6 4 7];
>> y = [0 0 1; 1 1 0; 1 1 0; 0 1 1; 0.2 0.8 0.54; 1 1 1; 0 0 0];
Where you can think of x
as some image, and y
as the degree of membership of each element of x
to some region of interest.
Say I set those elements in x
that have degree of membership = 1 to 1
(core) and the other elements to 0
as follows:
x = zeros(size(y));
x(y==1) = 1;
In which case I will have the following output:
0 0 1
1 1 0
1 1 0
0 1 1
0 0 0
1 1 1
0 0 0
Now, for the elements of 0
, I substitute their values with the value of y
in the corresponding location as follows:
x(x==0)=y(x==0);
Now, I select those pixels that are considered 4-neighbours
of core
but not in core as follows:
four_neighbourhood_pixels = imdilate(core, strel('diamond', 1)) - core;
My question is: how can we select a pixel p
that belongs to four_neighbourhood_pixels
that minimizes the distance between x
& core
?
Provided that for distance I calculate it as follows:
pdist([x,core],'minkowski');
Provided that x
in the preceding command will be the matrix after substituting the zeros
with the degree of membership values y
i the corresponding location?
So, how can I select that pixel that belongs to four_neighbourhood_pixels
that minimizes the distance between x
with the zeros substituted and core
?
Thanks.