我有一幅图像,我想使用Hough line算法从(血管网络)中提取线条。首先对图像进行预处理,然后使用Canny边缘检测生成二值图像。

我想要得到一个多边形/一个连接线段的数组来表示血管网络的形状。然而,直接在此图像上应用霍夫线变换会产生平庸的结果,部分原因是边缘检测意味着每个血管都由每边的两条线表示,而不是一条线。
一般来说,我对OpenCV和图像处理是个新手,所以我可能用错了方法。有什么建议或推荐的文学作品吗?
发布于 2016-04-07 01:48:05
我建议不要使用Canny边缘检测。
相反,首先使用二进制阈值来获得血管网络的二进制图像(有关应用二进制阈值的信息,请参阅http://docs.opencv.org/3.1.0/d7/d4d/tutorial_py_thresholding.html#gsc.tab=0 )。然后,“开”的像素应该是网络内部的点,而那些“关”的像素应该是外面的点。
然后使用findContours方法:
http://opencvexamples.blogspot.com/2013/09/find-contour.html
此方法为您提供了一个轮廓线数组,每个轮廓线都是一个点列表。一个点的列表将表示您正在查找的线段列表(它将表示一个轮廓,如果您幸运的话,它可能是一个多边形!)。
发布于 2015-07-14 07:09:20
Hough可能不是这项工作的最佳工具。Hough将为您提供直线或其他几何形状。它不是为遵循这样的详细模式而设计的。
考虑到这张图片,我会阅读已经解决这个问题的研究论文。这里有几个在谷歌学者上搜索的例子。如果它们对你不起作用,请查阅引文,因为它们应该引导你走上其他道路。
https://stackoverflow.com/questions/31392445
复制相似问题