嗨,我正在尝试获取一个距离变换到一个边缘图像,我想在给定的数字Figure 1Figure 2中获得类似的结果
import cv2
img = cv2.imshow("image.jpg")
img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# Applying the Canny Edge filter
edge = cv2.Canny(img, t_lower, t_upper)
#dil = cv2.dilate(edge,(3,3),iterations=20)
distTransform=cv2.distanceTransform(edge,cv2.DIST_L1,5)
然而,openCV canny边缘检测函数给我1px厚的边缘,所以距离变换的输出变得与输入相同。Figure 3 - Distance transform to edge detection扩张边缘效果很好,但是,我不想引起图像的变化。我如何才能获得类似的结果,如图1和2?
1条答案
按热度按时间hwamh0ep1#
经过大量的尝试,我发现OpenCV中的距离转换函数与Matlab中的不同。OpenCV中的距离转换函数假设活动像素为0,正如@Micka所说。移动输入是一种选择。然而,我也发现了一个自定义函数,它在this post中也很好用。