我正在尝试寻找一些方法来检测CT扫描中的线。我发现所有Hough变换家族和其他一些算法都需要处理边缘检测器之后产生的轮廓。我发现轮廓不是我想要的并且这两个步骤造成了很多短线。我对此感到困惑。有位帅哥可以告诉我如何处理吗?有些方法或算法直接用于灰度图像,而不用于二进制图像?使用opencv或numpy是完美的!非常感谢!
下面是测试图片。我正在努力检测左上的直线并过滤掉其他直线。
最佳答案
您的背景非常一致,所以我会:
与背景颜色不相邻的任何像素一样。
如果找不到,则停止
现在ID缓冲区包含您标记的轮廓
为了加快速度,您可以记住#2的每个轮廓起点,甚至可以直接在步骤#2中执行此步骤。
即简单的直线在相邻点之间具有相似的倾斜角。您还可以应用回归或其他任何方法...必须在相距至少5个像素的像素上计算斜率或单位方向 vector ,否则光栅化像素化会破坏结果。
看到一些相关的东西:
关于algorithm - 如何在绝对灰度图像中而不是在二进制图像中检测直线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62060920/