如何以编程方式删除黑色网格?

时间:2012-07-05 10:48:56

标签: python graphics imagemagick extraction image-recognition

我的想法是:

  
      
  • 1.0。 [未解决,硬图像检测] 将图像分解为正方形并删除边框,当然还有其他技术!

  •   
  • 1.1。 [未解决] Imagemagick:crop(说明here),删除   某些边界 - 这可能需要一个   很多时候定位网格,图像检测   问题(比较白/黑) - 或者可能有一些魔棒样式过滤器。

  •   
  • 1.2。 [未解决] Python:你可能需要这个from PIL import Image

  •   

很明显,Gimp的橡皮擦是解决这个问题的错误方法,因为它很慢且容易出错。你会如何以编程方式删除网格?

enter image description here

P.S。在Graphics.SE here中有关此问题的随意讨论,其中包含更多物理和机械攻击。

3 个答案:

答案 0 :(得分:4)

如果所有图像都由灰色网格上的黑线组成,则可以调整白色阈值以移除网格(例如,使用ImageMagick):

convert -white-threshold 80% with-grid.png without-grid.png

您可能需要尝试确切的阈值。 80%的人为我的样本图像工作。这将使线条像素化。但是,重新采样可能会将其减少到可接受的数量,例如用:

convert -resize 200% -white-threshold 80% -resize 50% with-grid.png without-grid.png

答案 1 :(得分:2)

在图像中,网格比绘图稍微亮一些,因此我们可以设置阈值,并过滤图像,使所有“光”像素都设置为白色。使用PIL它可能如下所示:

import Image

def filter(x):
    #200 is our cutoff, try adjusting it to see the difference.
    if x > 200:
        return 255
    return x

im = Image.open('bird.png')
im = im.point(filter)
im.show()

使用此代码处理上传的图片会显示:

enter image description here

在这种情况下,这是一个非常好的结果。如果您的绘图比网格更暗,您应该能够使用此方法而不会出现太多问题。

答案 2 :(得分:0)

对答案的反馈:emulbreh和fraxel

  

python -version使用ImageMagick所以让我们考虑一下ImageMagick。由于颜色通道不同,它不适用于下面的彩色版本。让我们进一步研究一下。

     

enter image description here

     

enter image description here

     

$ convert -white-threshold 0%bird.png without.png

     

enter image description here

     

此图显示原始扫描图片中的噪点量。

拼图:删除右手角作为示例

  

我反转了颜色$ convert -negate whiteVersion.png blackVersion.png,以便更容易进行虚拟化。现在有了下面的黑色照片,我想删除蓝色的右角,即将其变为黑色 - 这意味着我想将BG通道设置为0的BG,通道值为100%。

     

$ convert -channel BG -threshold 100%bbird.png without.png

     

enter image description here

     

enter image description here

     

现在剩下的唯一的东西当然是Red -channel,我删除了GB但白色仍然留有红色。现在我该如何删除右手角?我需要指定区域然后执行早期操作。

     

如何使用任意照片处理您想要删除某些颜色但保留一些颜色的颜色?

     

我不知道一个简单的方法。第一个问题是颜色检测问题 - 您为颜色(R,G,B)指定了一些不等式的条件。如果条件为真,则仅在零件中将其删除。现在,您对所有基本颜色执行此操作,即(R,G,B)=(100%,0,0), (R,G,B)=(0,100%,0)(R,G,B)=(0,0,100%)时。是否存在一些现成的实现?可能但是你自己做得更好,拼图!

必备知识

  
      
  • 关于Imagemagick的教程herehere

  •   
  • 为了理解这个主题,我们需要了解一些基本物理:白色是所有颜色的混合,黑色是没有颜色。

  •