Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Scikit图像:如何减少断线、重叠线?_Python_Opencv_Computer Vision_Scikit Image - Fatal编程技术网

Python Scikit图像:如何减少断线、重叠线?

Python Scikit图像:如何减少断线、重叠线?,python,opencv,computer-vision,scikit-image,Python,Opencv,Computer Vision,Scikit Image,我目前正在做一个项目,在图像中寻找直线和这些直线的长度,如下所示: 我使用python中的scikit图像包尝试查找行,下面是我的代码: edges=canny(图像[:,:,0],2,低阈值=0.6,高阈值=0.9) 线=概率线(边缘,阈值=30,线长度=40,线间距=1) 然后,我绘制了这些线,以验证我是否找到了大多数直线 下面是我得到的: 可以看出,在原始图像的线条(黑色)上有很多重叠和断开的线段(多色)。颜色线的长度应等于黑线的长度,并且每条黑线不应有重复的线段 我试着启动所有变量

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

我使用python中的scikit图像包尝试查找行,下面是我的代码:

edges=canny(图像[:,:,0],2,低阈值=0.6,高阈值=0.9)
线=概率线(边缘,阈值=30,线长度=40,线间距=1)

然后,我绘制了这些线,以验证我是否找到了大多数直线

下面是我得到的:

可以看出,在原始图像的线条(黑色)上有很多重叠和断开的线段(多色)。颜色线的长度应等于黑线的长度,并且每条黑线不应有重复的线段

我试着启动所有变量,如“阈值”、“西格玛”、“直线长度”、“间隙”等,但仍然无法完全消除重复的线段

请有人给我一些提示或指示,说明我做错了什么,以及在这个问题上我应该怎么做?希望我的问题不要太混乱

我尝试使用Scikit图像,因为在我看来,它比OpenCV重量相对较轻


先谢谢你

您需要先对图像进行骨架化。那么Canny就没用了(根据图像的类型,骨架化将为您提供所需的1像素厚的轮廓)

现在的情况是,图像上的线条很粗,因此Canny会检测每条粗线条两侧的轮廓,而Hough变换会检测两条轮廓上的线条


使用
skimage
您可以使用skimage.morphy import skeletonize中的

如果有人能提供一些类似的例子,这仍然非常有用。谢谢,Eskapp。“骷髅化”似乎适用于比细线更宽的形状。我将继续探索,稍后将分享结果。