在阈值图像中查找行间距 - R / C ++图像处理

时间:2016-10-19 08:33:59

标签: c++ r image image-processing

Hello Stackoverflowers,

我对图像处理有疑问。我将简要介绍一下我的项目,清理一下并提出问题。

  

我现在使用R,使用EBImage库。之后我会在C ++上编写代码。

在材料分析中,微观结构分析是为了理解钢的结构。它给分析仪提供了一些提示。

我的职责是;找到图像中的线间距。我会用图片来解释。

  

图片来自:https://de.wikipedia.org/wiki/Perlit_(Stahl)

我会发布拼贴图片,因为我无法上传2张以上的图片。 第一张照片是perlit微结构的图像。 第二张照片是预处理后的阈值图像。 第三张照片是我在Paint上为您展示我需要找到的区域。

  1. 照片,“预处理”通过以下方式完成:
    • Grayscaling the Image。
    • 通过7x7高斯内核关闭过滤器
    • 通过3x3 Box Kernel进行扩张过滤
    • Median Filter 7x7
    • 阈值图像
  2. 拼贴照片中的黑白图像是这些步骤的结果。

    Collage Photo of Perlit

    现在,如果你看这个图像,在第3张照片中,有一些线条间距由红色铅笔通过Paint显示。我想做一个分段来展示它们。

    你可以清楚地看到我摆脱了微小的垂直线条,制作了清晰的线条。

    我需要帮助进行细分。我目前正在阅读大量的计算机视觉和图像处理书籍,但不幸的是我找不到一个好的解决方案。在EBImage中,有一些功能,但“bwlabel”或“watershed”对我没什么帮助。

      

    分割将在此图像中水平完成。但是会有一个具有渐变线间距的图像。

    我没有问这个问题是否有准备好的复制粘贴答案。我真的想学习如何做到这一点。任何帮助将受到高度赞赏。

    非常感谢您阅读我的问题。

1 个答案:

答案 0 :(得分:0)

结构中似乎有一个横向图案..它总是这样吗?你试过利用这种相关性吗?也许提取vertical histogram(像素行上的直方图),找到最大值?

我重读了你的问题,已经看到你正在考虑水平状况。知道了这一点,如果你只是想要绘制红色区域,那么你已经有了一个很好的二元蒙版来绘制它们......或者你不想在黑暗结构之间画出小的白色斑块?

干杯