【问题标题】:Matlab image processing build region connectionsMatlab 图像处理建立区域连接
【发布时间】:2014-02-19 08:03:37
【问题描述】:

我正在使用 MATLAB 进行图像处理,并拥有带有分段区域的图像。这是一个示例图像: http://www.mathworks.de/help/releases/R2013b/images/examples/ipexroundness_04.png

如何找到从一个区域到最近的相邻区域的最小距离?我不需要完整的实现,但是任何人都可以参考一种算法来找到最近的相邻区域并计算该区域的最小距离和最近点。

我想使用这些信息来连接图像区域,即在图像区域之间建立桥梁。

【问题讨论】:

    标签: algorithm matlab image-processing


    【解决方案1】:

    在我的脑海中,快速而肮脏的嵌套循环方法:

    对于区域ii=1:n,运行区域iibwdist 的掩码以生成距离变换。对于区域jj=1:n,使用区域jj 的掩码来索引该距离变换。这可以让您获得区域 jj 中每个像素与区域 ii 中最接近的像素的距离 - 找到最小值(及其坐标)并将其填充到某种成对距离矩阵中。重复直到完成,然后处理成对距离矩阵以计算出要连接的区域。

    编辑:到目前为止,我想我不妨把一些东西拼在一起 - 这是一个粗略的版本,它采用二进制图像并将潜在连接点的距离、x 和 y 坐标作为成对矩阵返回:

    function [d x y] = regiondist(img)
    label = bwlabel(img);
    n = max(label(:));
    [x y d] = deal(zeros(n));
    for ii = 1:n
      dt = bwdist(label == ii);
      for jj = 1:n
        if ii == jj
          continue
        end
        reg = (label == jj);
        [mindist idx] = min(dt(reg));
        d(ii, jj) = mindist;
        [ry rx] = find(reg);
        x(ii, jj) = rx(idx);
        y(ii, jj) = ry(idx);
      end
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-07
      • 2014-06-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-29
      相关资源
      最近更新 更多