7

我经常扫描手写文件发送给同事,扫描后需要对数字文件进行更正。(例如,我将我在原始文档上犯的错误更改为白色。)

我正在考虑一些可以执行以下操作的脚本:

将彩色扫描图像(例如 tiff)作为输入,并根据图像中的彩色校正自动进行简单校正。

举个最简单的例子:我只写黑底白字。有一个地方我犯了错误,所以我在那个区域周围画了一个红色的封闭圆圈(用笔在实际的纸上)。然后我扫描图像(或通常其中许多)。现在我希望脚本擦除所有图像中的每个区域,以便我的错误在生成的图像中消失。

任何想法如何在 Linux 环境中实现这一点,例如使用 Image Magick?


看起来带有 script-fu 的 Gimp 可能是要走的路,它应该足够强大。有人可以通过指出上面的示例在 script-fu 中的样子给我一个提示吗?

4

2 回答 2

2

我正在考虑基于 ImageMagick 的解决方案。我们需要以下步骤:

  1. 在扫描的文档中找到用于绘制的颜色(现在称为目标颜色);
  2. 在图像中找到它的xy坐标;
  3. 将此位置作为种子传递给洪水填充算法。

我们可以根据 ImageMagick 的功能使用以下脚本:

  1. 输出图片中所有独特的颜色。这将用于找出目标颜色的 RGB 分量(命令源)。

    convert <image> -unique-colors -depth 8 txt:- > output.txt
    
  2. 输出文本文件中每种颜色的坐标:

    convert <image> txt:- > coord.txt
    
  3. 找到目标颜色的xy坐标(命令源)。假设第一步得到的目标颜色是红色:

    grep red coord.txt
    
  4. 最后,使用xy作为种子,floodfill将圆形区域替换为您想要的颜色(命令源)。在这种情况下,我习惯于white擦除该区域:

    convert <image> -fill white -fuzz 13% \
            -draw 'color <x>,<y> floodfill' <image_floodfill_output>
    

-fuzz参数将避免最初red因噪声而损坏的颜色也被替换。

教程提供了有关floodfill函数的更多信息,例如如何替换边缘颜色。

于 2012-07-27T20:45:28.350 回答
0

我建议看一个scansnap扫描仪(也许是scansnap 3100)。捆绑软件可以做的几件事可能会有所帮助。

您可能会发现您找到的任何软件/脚本都不会按照您想要的方式运行。听起来许多这些编辑都是需要用肉眼看到的东西。也许您可以聘请私人助理为您进行这些更正。:)

于 2012-05-16T20:51:58.363 回答