我有一个声明试图实施,但对如何这样做感到困惑。这是我的问题:
1
。因此,我们可以说我们现在有一个具有以下值1s
的集合,其中每个1
代表图像中的特定位置。C = [1 1 1 1 1 1 1 1 1 1];
例如,为简单起见,请img
为矩阵x
,如下所示:
x = [2 3 5; 5 4 5; 6 4 3; 6 5 4; 6 54 3; 6 5 3];
x
会有一定程度的成员资格y
,我们会根据这些成员资格设置1
。为了澄清,对于y
= 1
我们将该像素设置为1
的每个像素。所以,让我们说y
是:
y = [0 1 0; 0 1 1; 1 1 0; 0 0 1; 0 0 1; 1 1 1];
因此,C
包含10 1s
。例如,第一个1
代表位置x(1,2)
,依此类推......
现在,我想查看4-neighbourhoods
中像素的C
,但同时不在C
中。也就是说,在周围环境中。
现在,对于那些属于周围环境并且是C
的四个邻居的像素,我想选择最小化{之间的距离的像素p
{1}}和x
。
现在清楚了吗?你知道我怎么能绕过它吗?
感谢。
答案 0 :(得分:0)
如果您想要找到y
中像素的4邻居但不是y
本身的像素,则可以像这样使用imdilate
:
msk = zeros(3);
msk(2,:) = 1;
msk(:,2) = 1;
tmp = imdilate(y,msk);
result = tmp & ~y;
现在您可以将像素值设为C(result)
,并应用距离函数。