【问题标题】:Finding the pixel that minimizes the distance between two sets找到最小化两组之间距离的像素
【发布时间】:2013-02-07 22:14:52
【问题描述】:

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

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

  • 现在,我想检查C 中像素的4-neighbourhoods,但同时不在C 中。也就是说,在周围环境上。

  • 现在,对于那些属于周围环境并且是C 的四个相邻像素的像素,我想选择像素p最小化x 和@ 之间的距离 987654345@.

现在清楚了吗?你知道我该如何绕过它吗?

谢谢。

【问题讨论】:

  • 我不太明白你想在这里做什么。但是,您说您对“最小化距离”这句话感到困惑;如果有帮助,那可能表示像素值之间的距离,即图像看起来有多么不同。也许您可以提供更多信息,并说明您是否认为我的猜测对您的问题有意义。
  • imgpsize 是什么?
  • 感谢您的回复。我将在我的问题中添加更多信息
  • 也许你可以为一个小矩阵手动解决这个问题......这将有助于我们编写一个通用的伪代码
  • 距离最小的标准是什么?

标签: matlab pixel distance minimize


【解决方案1】:

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

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

tmp = imdilate(y,msk);

result = tmp & ~y;

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

【讨论】:

    猜你喜欢
    • 2011-07-23
    • 1970-01-01
    • 2021-10-24
    • 1970-01-01
    • 1970-01-01
    • 2023-01-28
    • 1970-01-01
    • 2016-12-25
    • 1970-01-01
    相关资源
    最近更新 更多