找到最小化两组之间距离的像素

时间:2013-02-22 10:15:42

标签: matlab pixel distance minimize

我有一个声明试图实施,但对如何这样做感到困惑。这是我的问题:

  • 我有一个图像,我将一些感兴趣的像素(感兴趣的区域)设置为值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

现在清楚了吗?你知道我怎么能绕过它吗?

感谢。

1 个答案:

答案 0 :(得分:0)

如果您想要找到y中像素的4邻居但不是y本身的像素,则可以像这样使用imdilate

msk = zeros(3);
msk(2,:) = 1;
msk(:,2) = 1;

tmp = imdilate(y,msk);

result = tmp & ~y;

现在您可以将像素值设为C(result),并应用距离函数。