【问题标题】:To remove background greyed pixels from image从图像中删除背景灰色像素
【发布时间】:2014-12-31 10:13:23
【问题描述】:

我想删除上图中背景不必要的灰色像素。 我可以知道该怎么做吗?

【问题讨论】:

    标签: image image-processing imagemagick imagemagick-convert


    【解决方案1】:

    ImageMagick 又快又脏:

    convert 9AWLa.png -blur x1 -threshold 50% out.png
    

    更好一些,仍然使用 ImageMagick:

    convert 9AWLa.png -morphology thicken '1x3>:1,0,1' out.png
    

    更新答案

    在去除图像中其他地方的噪点的同时保持噪点边界完整是相当困难的。是否可以将边缘一直修剪 3 像素,然后重新添加 3 像素宽的黑色边框?

    convert 9AWLa.png -morphology thicken '1x3>:1,0,1' \
            -shave 3x3 -bordercolor black -border 3 out.png
    

    【讨论】:

    • 谢谢马克。在上图中,左侧的线被破坏了。当我为我的图像运行上述命令时,我发现表格行也因此而损坏。请问我也知道如何获得不间断的线条。
    • 好答案! (我喜欢有插图显示命令的输出。)
    【解决方案2】:

    我想到的一些方法是

    • 如果背景是灰色而不是稀疏的黑点,那么您可以通过使用适当的灰度值对其进行阈值化来将图像转换为二进制。即高于特定像素值的所有值都是白色的,低于该像素值的所有值都是黑色的。像这样的东西。

    • 您可以做的另一件事是首先使用一些过滤器(例如均值或中值过滤器)对图片进行平滑处理,然后将其转换为上一点呈现的二进制。

    我觉得这样可以去掉不必要的背景

    【讨论】:

    • 您可以通过添加两件事来大大改善这个答案:(1)要使用的特定命令; (2) 关于命令产生的结果的一些说明。 [毕竟,OP的问题包括一个示例图片,这在大多数问题中都很少见......]