Algorithm 如何在绝对灰度图像中检测直线,而不是通过二值图像?
最近,我试图寻找一些在CT扫描中检测线条的方法。我发现所有的Hough变换家族和一些其他算法都需要处理边缘检测后生成的轮廓。我发现轮廓不是我想要的,并且通过这两个步骤产生了许多短线条。我对此感到困惑。有人能告诉我吗怎么办?有些方法或算法直接用于灰度图像,但不用于二值图像?使用opencv或numpy是完美的!非常感谢! 下面是测试图片。我正在检测左上方的直线并过滤掉其他直线Algorithm 如何在绝对灰度图像中检测直线,而不是通过二值图像?,algorithm,numpy,opencv,computer-vision,detect,Algorithm,Numpy,Opencv,Computer Vision,Detect,最近,我试图寻找一些在CT扫描中检测线条的方法。我发现所有的Hough变换家族和一些其他算法都需要处理边缘检测后生成的轮廓。我发现轮廓不是我想要的,并且通过这两个步骤产生了许多短线条。我对此感到困惑。有人能告诉我吗怎么办?有些方法或算法直接用于灰度图像,但不用于二值图像?使用opencv或numpy是完美的!非常感谢! 下面是测试图片。我正在检测左上方的直线并过滤掉其他直线 你的背景相当一致,因此我会: 检测轮廓 与任何非背景色的像素一样,该像素是相邻的背景色 分割/标记轮廓点,形成有序的“多段
你的背景相当一致,因此我会:
- 检测轮廓 与任何非背景色的像素一样,该像素是相邻的背景色
- 分割/标记轮廓点,形成有序的“多段线”
- 创建ID缓冲区并设置ID=0(背景或对象像素)
- 查找任何尚未处理的轮廓像素 如果没有找到,请停止
- 按ID对ID缓冲区中的等高线进行整体填充
- 增量ID
- 去2号 现在ID缓冲区包含标记的轮廓
- 为每个轮廓创建形成轮廓“多段线”的有序像素列表 为了加快速度,您可以从#2记住每个轮廓起点,甚至可以在步骤#2中直接执行此步骤
- 检测等高线“多段线”中的直线。 也就是说,简单的直线在相邻点之间具有相似的坡度角。你也可以应用回归或其他方法。。。坡度或单位方向向量必须在彼此至少相距5个像素的像素上计算,否则光栅化-像素化将破坏结果 看一些相关的东西:
- 你的背景相当一致,因此我会: