查找使两组之间的距离最小的像素

问题描述:

我有一条声明试图实现,但如何实现却很困惑。这是我的问题:查找使两组之间的距离最小的像素

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

  • 现在,我要检查的像素的C4-neighbourhoods但同时不C。就是在周围。

  • 现在,属于周围环境,并且是C四个相邻的像素我想选择像素pxC之间的距离最小化

现在清楚了吗?你知道我怎么可以绕过吗?

谢谢。

+0

我不太明白你在这里要做什么。但是,你说你被“最小化距离”这个短语所困惑;如果有帮助,那*可能意味着像素值之间的距离,即图像看起来有多不同。也许你可以提供更多的信息,并说出你是否认为我的猜测对你的问题有意义。 – jazzbassrob 2013-02-22 10:23:12

+0

'img'和'p'的大小是多少? – 2013-02-22 10:23:27

+0

感谢您的回复。我将在我的问题中添加更多信息 – Simplicity 2013-02-22 10:27:18

如果你想找到属于像素的4-邻居y像素,但不y自己,你可以使用imdilate这样的:

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

tmp = imdilate(y,msk); 

result = tmp & ~y; 

现在,你可以得到的像素值作为C(result) ,并应用你的距离函数。