opencv Canny边缘检测图像的距离变换

332nm8kg  于 2023-03-09  发布在  其他
关注(0)|答案(1)|浏览(171)

嗨,我正在尝试获取一个距离变换到一个边缘图像,我想在给定的数字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?

hwamh0ep

hwamh0ep1#

经过大量的尝试,我发现OpenCV中的距离转换函数与Matlab中的不同。OpenCV中的距离转换函数假设活动像素为0,正如@Micka所说。移动输入是一种选择。然而,我也发现了一个自定义函数,它在this post中也很好用。

相关问题