距离变换

距离变换是二值图像处理的常用手段,在骨架提取、图像窄化中经常用到。

距离变换后得到的是与输入图像类似的灰度图,越远离背景边缘灰度值越大(越亮)。

常用的算法有:欧几里得距离(L2 norm)、曼哈顿距离(L1 norm)、棋盘格距离(L1 ∞)

算法的具体实现略。

 

介绍一个api :

cv.distanceTransform(dst,cv.DIST_L1,5,dstType=cv.CV_8U)

cv.DIST_L1 要与 CV_8U 相配

cv.DIST_L2 要与 CV_32F 相配,如果直接用L2可能由于数值太大而没有效果,需要加上:

cv.normalize(dist,dist,0,1,cv.NORM_MINMAX)

代码如下:

def distance_demo():
    src = cv.imread("D:/pythonTest/img/1.jpg")
    cv.imshow("input", src)
    src = cv.GaussianBlur(src, (3, 3), 0)
    grey = cv.cvtColor(src, cv.COLOR_BGR2GRAY)
    ret, dst = cv.threshold(grey, 0, 255, cv.THRESH_BINARY | cv.THRESH_OTSU)
    cv.imshow("output", dst)
    dist = cv.distanceTransform(dst,cv.DIST_L1,5,dstType=cv.CV_8U)
    #cv.normalize(dist,dist,0,1,cv.NORM_MINMAX)
    cv.imshow("distance_transform",dist)

效果如下:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值