Opencv:距离变换

 

dst = cv.distanceTransform(src, distanceType, maskSize[, dst[, dstType]])

这个函数用来干嘛呢??答:计算源图像中每个像素到最近零像素的距离。 

参考:https://www.jianshu.com/p/fe4ec897dbf5

https://www.cnblogs.com/ssyfj/p/9278815.html

  • src : 加载单通道二值图片
  • distanceType: 距离类型。常用的有: CV_DIST_L1、CV_DIST_L2 、CV_DIST_C。
  • maskSize: 掩模大小。

说明:通常,为了快速、粗略地估计DIST L2,使用一个3x3掩码。为了获得更精确的距离估计,使用了5×5掩码或精确算法。注意,精确算法和近似算法在像素数上都是线性的。

 

 

import cv2

img = cv2.imread("b.jpg")
gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
ret,thresh = cv2.threshold(gray,0,255,cv2.THRESH_BINARY_INV+cv2.THRESH_OTSU)

dist = cv2.distanceTransform(thresh,cv2.DIST_L2, cv2.DIST_MASK_3)
ret,thresh1 = cv2.threshold(dist, 0.1*dist.max(),255,cv2.THRESH_BINARY)

# 归一化处理,不然看不到效果
cv2.normalize(dist,dist,0,1,cv2.NORM_MINMAX)

cv2.imshow("dist",dist)
cv2.imshow("thresh1",thresh1)

cv2.waitKey(0)
cv2.destroyAllWindows()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值