【问题标题】:special point distance transform in matlabmatlab中的特殊点距离变换
【发布时间】:2015-11-04 13:49:51
【问题描述】:

我用matlab计算二值图像的距离变换,发现bwdist()可以计算图像所有点的距离,但我只想知道一个特殊点的距离。 例如,我有一个像这样的二进制图像

image =

     1     0     0
     0     0     1
     0     0     0

bwdist() 计算所有点的距离变换

>> bwdist(a)

ans =

         0    1.0000    1.0000
    1.0000    1.0000         0
    2.0000    1.4142    1.0000

但我只想计算点图像的距离(3,2),所以函数给我 1.4142

任何功能都可以吗?

【问题讨论】:

    标签: matlab image-processing euclidean-distance binary-image


    【解决方案1】:

    您可以使用find 查找所有1's 的行和列索引,然后使用pdist2 from Statistics and Machine Learning Toolbox 计算所有1's 到搜索点(3,2) 的距离,最后选择最小值这些距离以获得最终输出。这是作为示例运行显示的实现 -

    >> image
    image =
         1     0     0
         0     0     1
         0     0     0
    >> point
    point =
         3     2
    >> [R,C] = find(image);
    >> min(pdist2([R C],point))
    ans =
           1.4142
    

    如果你无权访问pdist2,你可以使用bsxfun来替换它-

    min(sqrt(sum(bsxfun(@minus,[R C],point).^2,2)))
    

    【讨论】:

      猜你喜欢
      • 2018-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-15
      • 1970-01-01
      • 1970-01-01
      • 2013-02-03
      相关资源
      最近更新 更多