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
假设得到第二行和第三行之间的最小值。基于此,告诉我们你所说的“找到一个使…最小化的像素”是什么意思