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()