我目前正在做一个项目,在一个图像中寻找直线和这些直线的长度,如下所示:

我使用python中的scikit-image包试图找到这些行,下面是我的代码:
edges=canny(image[:,:,0], 2, low_threshold=0.6, high_threshold=0.9) lines=probabilistic_hough_line(edges, threshold=30, line_length=40, line_gap=1)
然后,我绘制了这些线,以验证我是否找到了大多数直线
下面是我得到的信息:

可以看出,在原始图像上,沿着线条(黑色)有许多重叠和折断的线段(多色)。彩色线的长度应等于黑线的长度,并且每条黑线不能有重复的线段。
我尝试了所有变量,如“阈值”,"sigma","line_length","gap“等,但仍然无法完全消除重复的线段。
有人可以给我一些提示或方向,我做错了什么,以及在这个问题上我应该做什么?希望我的问题不会太混乱。
我尝试使用Scikit-image,因为在我看来,它比OpenCV相对更轻。
提前谢谢你。
发布于 2017-07-01 01:00:30
你需要先概括一下你的形象。那么Canny就没用了(根据你的图像类型,骨架会给出你需要的1像素厚的轮廓)。
现在发生的情况是,图像上的线条很粗,因此Canny检测每条粗线两边的轮廓,而Hough变换检测两条轮廓上的线条。
对于skimage,您可以使用from skimage.morphology import skeletonize。
https://stackoverflow.com/questions/44192039
复制相似问题