【发布时间】:2013-02-09 09:23:58
【问题描述】:
假设我有以下两个矩阵:
>> 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(核心),将其他元素设置为0,如下所示:
x = zeros(size(y));
x(y==1) = 1;
在这种情况下,我将得到以下输出:
0 0 1
1 1 0
1 1 0
0 1 1
0 0 0
1 1 1
0 0 0
现在,对于0 的元素,我将它们的值替换为相应位置的y 的值,如下所示:
x(x==0)=y(x==0);
现在,我选择那些被视为4-neighbours 的core 但不在核心中的像素,如下所示:
four_neighbourhood_pixels = imdilate(core, strel('diamond', 1)) - core;
我的问题是:我们如何选择一个属于four_neighbourhood_pixels 的像素p 以最小化x 和core 之间的距离?
假设距离我计算如下:
pdist([x,core],'minkowski');
假设前面命令中的x为对应位置的隶属度值y代入zeros后的矩阵?
那么,我该如何选择属于four_neighbourhood_pixels 的像素,以最小化x 与core 之间的距离?
谢谢。
【问题讨论】:
标签: matlab select pixel distance minimize