我想要使用Hough线算法从(血管网络)中提取线条。首先,我预处理图像,然后使用Canny边缘检测生成二进制图像。
我想得到一个多边形/一组连接线段,表示血管网络的形状。然而,直接在此图像上应用霍夫线变换会产生平庸的结果,部分原因是边缘检测意味着每个血管在每一侧由两条线代表,而不是一条线。
我是OpenCV和图像处理的新手,所以我可能会以错误的方式解决这个问题。有什么建议,或任何推荐的文献?
答案 0 :(得分:0)
霍夫可能不是这项工作的最佳工具。霍夫会给你直线或其他几何形状。它不是按照这样的详细模式设计的。
鉴于图像,我会阅读已经解决这个问题的研究论文。以下是Google学术搜索中的一些搜索示例。如果它们不适合您,请查看引文,因为它们应该引导您走下其他路径。
答案 1 :(得分:0)
我建议不要使用Canny边缘检测。
相反,首先使用二进制阈值来获取血管网络的二进制图像(请参阅http://docs.opencv.org/3.1.0/d7/d4d/tutorial_py_thresholding.html#gsc.tab=0以应用二进制阈值)。那么," on"应该是网络中的点和那些" off"应该在外面。
然后使用findContours方法:
http://opencvexamples.blogspot.com/2013/09/find-contour.html
此方法为您提供一组轮廓,每个轮廓都是一个点列表。点列表将表示您要查找的线段列表(它将表示轮廓,如果幸运的话,它可能是多边形!)。