【问题标题】:Find "fraction of bright pixels" in image (thresholding?)在图像中找到“明亮像素的一部分”(阈值?)
【发布时间】:2016-05-04 20:43:58
【问题描述】:

我有大量灰度图像,它们在较暗的背景上显示出明亮的“纤维”。我正在尝试量化纤维的“数量”。由于它们几乎在任何地方都重叠,因此无法计算纤维的数量,所以我想简单地计算白色纤维的面积分数与完整图像相比有多大(例如,这个是 55% 白色,另一个一种纤维较少的只有 43% 是白色的,等等)。换句话说,我想量化图像中纤维的密度。

示例图片:

高密度:https://dl.dropboxusercontent.com/u/14309718/f1.jpg

低密度:https://dl.dropboxusercontent.com/u/14309718/f2.jpg

我认为一个简单的(自适应)阈值过滤器可以很好地完成这项工作,只需将图像转换为纯黑/白,然后计算白色像素的比例。但是,我的答案似乎几乎完全取决于我选择的阈值。我通过采用大量不同的阈值进行了一些快速实验,发现在所有图片中,白色像素的比例几乎完全是阈值的线性函数。换句话说 - 根据我选择的阈值,我可以得到大约 10% 到 90% 之间的任何我想要的答案。

这显然不是一个好方法,因为我的结果对我选择阈值的方式非常有偏见,因此完全没用。此外,我有大约 100 张这样的图像,我不期待手动为所有这些图像选择“正确”阈值。

我该如何改进这个方法?

【问题讨论】:

    标签: image-processing grayscale threshold


    【解决方案1】:

    由于图像复杂,纤维轮廓模糊,因此获得“精确”测量的希望不大。

    那么重要的是实现可重复性,即确保始终为相同的光纤密度分配相同的测量值,即使在可能的不同照明条件下也是如此,并且为不同的密度分配不同的测量值。

    这排除了调整阈值时的人为干预。

    我最好的建议是依靠 Otsu 阈值,它非常擅长寻找有意义的背景和前景强度,并且与光照无关。

    应避免在 Otsu 之前增强对比度,因为二值化与对比度增强相互影响(因此没有真正的好处),但对比度增强会因某些地方饱和而降低图像质量。

    【讨论】:

    • 谢谢。我认为轮廓的模糊性正是我遇到的问题,因为增加阈值似乎只会导致考虑更多的纤维(例如,计算更多的模糊边缘)所以它是有道理的取决于阈值。没有什么专门解决这个问题的吗?所有图像中的模糊度都应该非常相似,所以也许一种算法可以查看从黑色到白色的渐变并选择一些中间值作为“边缘”?我不知道如何通过头脑风暴来实现这一点。我会调查大津阈值。
    • @NickThissen:不要担心模糊边缘,只需使用经验测量即可。可重复性比任何一种“正确性”都更重要。
    【解决方案2】:

    只是真正回应@YvesDaoust 的想法 - 并提供一些具体的例子......

    您可以使用安装在大多数 Linux 发行版上并且适用于 OSX 和 Windows 的 ImageMagick 生成图像的直方图。我只是在命令行中执行此操作,但运行一些测试并查看 Yves 的建议对您有何帮助,它功能强大且易于操作。

    # Make histograms for both images
    convert 1.jpg histogram:h1.png
    convert 2.jpg histogram:h2.png
    

    是的,它们相当是双峰的 - 所以 Otsu 阈值应该找到一个最大化类间方差的阈值。使用来自 Fred Weinhaus 网站 here 的脚本 otsuthresh

    ./otsuthresh  1.jpg 1.gif
    Thresholding Image At 44.7059%
    
    ./otsuthresh  2.jpg 2.gif
    Thresholding Image At 42.7451%
    

    计算每张图像中白色像素的百分比:

    convert 1.gif -format "%[fx:int(mean*100)]" info:
    50
    
    convert 2.gif -format "%[fx:int(mean*100)]" info:
    48
    

    没有那么出色的区别!嗯...我尝试添加一个中值滤波器来减少噪音,但这并没有帮助。您是否将图像以 PNG 格式提供以避免令人讨厌的伪影?

    【讨论】:

      猜你喜欢
      • 2017-12-28
      • 1970-01-01
      • 2015-03-19
      • 2021-06-19
      • 1970-01-01
      • 2012-02-19
      • 1970-01-01
      • 2014-12-21
      • 2020-03-12
      相关资源
      最近更新 更多