【问题标题】:algorithm, image processing, flood fill算法,图像处理,洪水填充
【发布时间】:2014-05-29 16:24:55
【问题描述】:

我正在尝试处理 X 射线图像。

任务是将每个骨骼涂成不同的颜色。我使用了 canny 滤镜、otsu 二值化和 Morphological Image Processing (例如腐蚀)来获得这种效果:

现在我需要找到一种算法来为每个骨骼着色。我正在考虑使用连接组件标签或洪水填充,但这些算法需要封闭区域,该区域将填充颜色,但在我的图像中也有“几乎封闭”的区域来着色。我试图用扩张“关闭每一根骨头”,但它不起作用。

现在我完全不知道如何处理它以及如何为骨骼着色。

【问题讨论】:

  • 1.您想寻找分割... 2.您的图像处理丢失了一些骨骼的边界区域...您需要强调骨关节空间以区分每个骨骼而不是其他方式像你一样(你的骨头被强调所以你合并在一起)

标签: java image algorithm image-processing


【解决方案1】:

您可以尝试对图像进行矢量化处理。我做了类似的事情,在运行简单的矢量化之后,连接的组件很容易填充。

您可以通过例如直接矢量化您的输入。在上面运行行进广场。它还会创建边缘图像。

【讨论】:

    【解决方案2】:

    虽然这可能不是您正在寻找的确切内容,但我会推荐一种简单的边缘查找算法。我这样做的方法(这可能不是最有效的方法)是将图像提取到二维像素数组中。您可以做的是将每个像素的 RGB 值与其相邻像素进行比较,如果差异较大,则将其着色为更亮的颜色。要计算差异,您可以使用 2D 毕达哥拉斯距离公式的 3D 版本。找到 RGB 值之间的“距离”并将其乘以某个值以将值保持在 0 到 255 之间,然后将要与其周围像素进行比较的像素替换为 8 个周围像素的平均值的像素。

    如果操作正确,它应该会产生与您在此处显示的结果相似(如果不完全相同)的结果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-16
      • 2014-02-16
      • 1970-01-01
      相关资源
      最近更新 更多