Algorithm 如何在绝对灰度图像中检测直线,而不是通过二值图像?

Algorithm 如何在绝对灰度图像中检测直线,而不是通过二值图像?,algorithm,numpy,opencv,computer-vision,detect,Algorithm,Numpy,Opencv,Computer Vision,Detect,最近,我试图寻找一些在CT扫描中检测线条的方法。我发现所有的Hough变换家族和一些其他算法都需要处理边缘检测后生成的轮廓。我发现轮廓不是我想要的,并且通过这两个步骤产生了许多短线条。我对此感到困惑。有人能告诉我吗怎么办?有些方法或算法直接用于灰度图像,但不用于二值图像?使用opencv或numpy是完美的!非常感谢! 下面是测试图片。我正在检测左上方的直线并过滤掉其他直线 你的背景相当一致,因此我会: 检测轮廓 与任何非背景色的像素一样,该像素是相邻的背景色 分割/标记轮廓点,形成有序的“多段

最近,我试图寻找一些在CT扫描中检测线条的方法。我发现所有的Hough变换家族和一些其他算法都需要处理边缘检测后生成的轮廓。我发现轮廓不是我想要的,并且通过这两个步骤产生了许多短线条。我对此感到困惑。有人能告诉我吗怎么办?有些方法或算法直接用于灰度图像,但不用于二值图像?使用opencv或numpy是完美的!非常感谢! 下面是测试图片。我正在检测左上方的直线并过滤掉其他直线


你的背景相当一致,因此我会:

  • 检测轮廓

    与任何非背景色的像素一样,该像素是相邻的背景色

  • 分割/标记轮廓点,形成有序的“多段线”

  • 创建ID缓冲区并设置ID=0(背景或对象像素)
  • 查找任何尚未处理的轮廓像素 如果没有找到,请停止
  • 按ID对ID缓冲区中的等高线进行整体填充
  • 增量ID
  • 去2号
  • 现在ID缓冲区包含标记的轮廓

  • 为每个轮廓创建形成轮廓“多段线”的有序像素列表

    为了加快速度,您可以从#2记住每个轮廓起点,甚至可以在步骤#2中直接执行此步骤

  • 检测等高线“多段线”中的直线。

    也就是说,简单的直线在相邻点之间具有相似的坡度角。你也可以应用回归或其他方法。。。坡度或单位方向向量必须在彼此至少相距5个像素的像素上计算,否则光栅化-像素化将破坏结果

  • 看一些相关的东西:


      • 你的背景相当一致,因此我会:

      • 检测轮廓

        与任何非背景色的像素一样,该像素是相邻的背景色

      • 分割/标记轮廓点,形成有序的“多段线”

      • 创建ID缓冲区并设置ID=0(背景或对象像素)
      • 查找任何尚未处理的轮廓像素 如果没有找到,请停止
      • 按ID对ID缓冲区中的等高线进行整体填充
      • 增量ID
      • 去2号
      • 现在ID缓冲区包含标记的轮廓

      • 为每个轮廓创建形成轮廓“多段线”的有序像素列表

        为了加快速度,您可以从#2记住每个轮廓起点,甚至可以在步骤#2中直接执行此步骤

      • 检测等高线“多段线”中的直线。

        也就是说,简单的直线在相邻点之间具有相似的坡度角。你也可以应用回归或其他方法。。。坡度或单位方向向量必须在彼此至少相距5个像素的像素上计算,否则光栅化-像素化将破坏结果

      • 看一些相关的东西:


        欢迎来到Stackoverflow。你能发布一张图片和/或你试图提供的代码吗?我已经在我的问题后粘贴了我的图片。你有什么想法吗?欢迎来到Stackoverflow。你可以发布一张图片和/或你试图提供的代码吗?我已经在我的问题后粘贴了我的图片。你有什么想法吗?谢谢你的慷慨!!!我会用这种方式做一些体验。谢谢你的慷慨!!!我将以这种方式做一些经验。