opencv - 从 OpenCV 中的边获取多边形

标签 opencv

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

我想要一个多边形/一组连接的线段来表示血管网络的形状。然而,直接在该图像上应用霍夫线变换会产生平庸的结果,部分原因是边缘检测意味着每条血管在每一侧都由两条线表示,而不是一条线。

我对 OpenCV 和一般的图像处理不熟悉,所以我可能会以错误的方式处理这个问题。有什么建议或推荐的文献吗?

最佳答案

我建议不要使用 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

此方法为您提供一系列等高线,每个等高线都是一个点列表。一个点列表将代表您正在寻找的线段列表(它将代表一个轮廓,如果幸运的话它可能是一个多边形!)。

关于opencv - 从 OpenCV 中的边获取多边形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31392445/

相关文章:

python - OpenCV canny 边缘检测在理想正方形上无法正常工作

opencv - HOG 人体检测器 : False Positive detections on background subtracted images

c++ - 使用 OpenCV 和 Matlab 从 RGB 到 YCbCr 的不同颜色转换

c++ - opencv无法加载jp2图像文件

python - 在 Python 中创建快速 RGB 查找表

c - 图像处理中的流畅操作

python - 尝试将图像上的点投影到二维平面时的 OpenCV channel

python - 使用 OpenCV Python 使用模糊水平集进行视网膜流体分割

c++ - 将 openCV 链接到 clion 项目

python - Google Nest Hello 流媒体 URL 不起作用