python - Scikit-image:如何减少断线段、重叠线?

标签 python opencv computer-vision scikit-image

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

random_raw

我在 python 中使用了 scikit-image 包试图找到这些行,这是我的代码:

edges=canny(图像[:,:,0], 2, low_threshold=0.6, high_threshold=0.9) 线=probabilistic_hough_line(边缘,阈值=30,line_length=40,line_gap=1)

然后我绘制了线条来验证我是否找到了大部分直线

这就是我得到的: lines

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

我尝试启动所有变量,例如“threshold”、“sigma”、“line_length”、“gap”等,但仍然无法完全消除重复的线段。

有人可以给我一些提示或指导,告诉我我做错了什么以及我应该对此问题做什么吗?希望我的问题不会太困惑。

我尝试使用 Scikit-image,因为在我看来,它比 OpenCV 的重量相对更轻。

提前谢谢您。

最佳答案

您需要先骨架化您的图像。那么 Canny 将毫无用处(给定图像的类型,骨架化将为您提供所需的 1 像素粗轮廓)。

现在发生的情况是图像上的线条很粗,因此 Canny 检测每条粗线两侧的轮廓,而霍夫变换则检测两个轮廓上的线条。

通过skimage,您可以使用from skimage.morphology import sculptureize

关于python - Scikit-image:如何减少断线段、重叠线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44192039/

相关文章:

python - 如何根据返回的不区分大小写的增量从文件系统中删除文件?

python - 通过使用 numpy 平均相邻值来减小数组大小

python - 无法从 Django 发送 HttpResponse

android - 来自相机的实时图像偏移

python - Python 中二维图像的非均匀采样

ios - VNRectangleObservation 角在 iPhone 上压缩在 x 轴上

pythonflask - 在不同的url上提供文件

Python:图像分割作为分类的预处理

c++ - 使用 g4 压缩压缩输出 tiff

matlab - SIFT 方向归一化