Matlab 选择使距离最小化的像素

Matlab 选择使距离最小化的像素,matlab,select,pixel,distance,minimize,Matlab,Select,Pixel,Distance,Minimize,假设我有以下两个矩阵: >> 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]; 其中,您可以将x视为某个图像,y视为x的每个元素对某个感兴趣区域的隶属度 假设我将x中的成员度=1的元素设置为1(core),将其他元素设置为0,如下所示: x = zeros(size(y)); x(y

假设我有以下两个矩阵:

>> 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];
其中,您可以将
x
视为某个图像,
y
视为
x
的每个元素对某个感兴趣区域的隶属度

假设我将
x
中的成员度=1的元素设置为
1
core),将其他元素设置为
0
,如下所示:

x = zeros(size(y));
x(y==1) = 1;
x(x==0)=y(x==0);
four_neighbourhood_pixels = imdilate(core, strel('diamond', 1)) - core;
pdist([x,core],'minkowski');
在这种情况下,我将有以下输出:

     0     0     1
     1     1     0
     1     1     0
     0     1     1
     0     0     0
     1     1     1
     0     0     0
现在,对于
0
的元素,我在相应位置用
y
的值替换它们的值,如下所示:

x = zeros(size(y));
x(y==1) = 1;
x(x==0)=y(x==0);
four_neighbourhood_pixels = imdilate(core, strel('diamond', 1)) - core;
pdist([x,core],'minkowski');
现在,我选择那些被认为是
core
4-邻域
,但不在core中的像素,如下所示:

x = zeros(size(y));
x(y==1) = 1;
x(x==0)=y(x==0);
four_neighbourhood_pixels = imdilate(core, strel('diamond', 1)) - core;
pdist([x,core],'minkowski');
我的问题是:我们如何选择一个属于
四邻域像素
的像素
p
,以最小化
x
核心之间的距离

前提是,对于距离,我计算如下:

x = zeros(size(y));
x(y==1) = 1;
x(x==0)=y(x==0);
four_neighbourhood_pixels = imdilate(core, strel('diamond', 1)) - core;
pdist([x,core],'minkowski');
前提是前面命令中的
x
将是用隶属度值
y
i替换
0
后的矩阵

那么,我如何选择属于
four_neighboration\u pixels
的像素,该像素使替换了零的
x
核心之间的距离最小化


谢谢。

如果我理解正确,
核心是以下矩阵:

 0     0     1
 1     1     0
 1     1     0
 0     1     1
 0     0     0
 1     1     1
 0     0     0
首先找到
x
core
之间的距离

dist=pdist([x,core],'minkowski');
dist1=squareform(dist);
[row1,row2]=find(dist1==min(dist1(:)); %interpretation: you get the minimum distance  between row1 and row2 of [x core]
如果我的理解正确,请注意:

您需要一个距离x的像素,它使距离
dist
最小化,并且它应该属于
四个邻域\u像素
。这是矩阵
[x核心]

 1     4     3     0     0     1
 6     4     3     1     1     0
 6     9     3     1     1     0
 2     4     3     0     1     1
 5     4     0     0     0     0
 5     3     1     1     1     1
 6     4     7     0     0     0
假设得到第二行和第三行之间的最小值。基于此,告诉我们你所说的“找到一个使…最小化的像素”是什么意思