Distance Transform  距离变换

原文地址:http://blog.sina.com.cn/s/blog_6c5a47d30102uxu3.html

最近用到了距离变换。

OPENCV 函数:void distanceTransform(InputArray src, OutputArray dst, int distanceType, int maskSize)

When maskSize == CV_DIST_MASK_PRECISE and distanceType == CV_DIST_L2 , the function runs the algorithm described in [Felzenszwalb04].In other cases, the algorithm [Borgefors86]

 

Intel ipp函数:

IppStatus ippiDistanceTransform_3x3_<mod>(const Ipp8u* pSrc, int srcStep, Ipp<dstDatatype>* pDst, int dstStep, IppiSize roiSize, Ipp32s* pMetrics);
IppStatus ippiDistanceTransform_5x5_<mod>(const Ipp8u* pSrc, int srcStep, Ipp<dstDatatype>* pDst, int dstStep, IppiSize roiSize, Ipp32s* pMetrics);

 

ippiNormInf(0) L∞, Δ = max(|x1 - x2|, |y1 - y2|),
ippiNormL1(1) L1, Δ = |x1 - x2| + |y1 - y2|,
ippiNormL2(2) L2, Δ = sqrt((x1 - x2)2 + (y1 - y2)2)

------------------------------------------------------------------------------------------------------------------

定义:二值图像,任意点到最近背景点的距离,一般为非零点到最近零点的距离。

image

例如下图,左为原图,F表示0,-表示255,为二值图像,右边给出了距离变换后各点的值。

image

 

L1,L2,∞的选择只是计算距离的方法不同而已。

DT计算已经有一些快速的成型的算法,不过对我而言只需要理解其含义,然后调用工具包接口即可。

 

------------------------------------------------------------------------------------------------------------------

Matlab也有相应的函数:

bwdist :Distance transform of binary image

但有更丰富的距离计算方法:

image 

 

 

参考文献:

[Borgefors86]:Borgefors, Gunilla, Distance transformations in digital images. Comput. Vision Graph. Image Process. 34 3, pp 344–371 (1986)

[Felzenszwalb04]:Felzenszwalb, Pedro F. and Huttenlocher, Daniel P. Distance Transforms of Sampled Functions, TR2004-1963, TR2004-1963 (2004)


  • 7
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值