7

手書きの文書をスキャンして同僚に送信することがよくありますが、スキャンしたデジタル ファイルを修正する必要があります。(たとえば、元のドキュメントで犯した間違いを白に変更します。)

次のことができるスクリプトを考えています。

入力としてカラー スキャン画像 (tiff など) を受け取り、画像の色補正に基づいて簡単な補正を自動的に行います。

たとえば、最も単純なケースを考えてみましょう。私は白地に黒だけを書きます。間違えた箇所があるので、その箇所に赤丸を(実際の紙にペンで)描きます。次に、画像 (または通常はそれらの多く) をスキャンします。ここで、スクリプトですべての画像のこれらの領域をそれぞれ消去して、結果の画像で間違いが消えるようにしたいと思います。

Image Magick などを使用して、Linux 環境でこれを実現する方法はありますか?


script-fu を使用した Gimp は、十分に強力な方法である可能性があるようです。上記の例がscript-fuのように見えることを指摘して、誰かが私にヒントを与えることができますか?

4

2 に答える 2

2

ImageMagick に基づくソリューションを考えています。次の手順が必要です。

  1. スキャンしたドキュメントで描画に使用される色を見つけます (ここでは、ターゲット カラーと呼びます)。
  2. x画像内のy座標を見つけます。
  3. この位置をシードとして Flood Fill アルゴリズムに渡します。

ImageMagick の関数に基づいて、次のスクリプトを使用できます。

  1. 画像内のすべての固有の色を出力します。これは、ターゲット カラーの RGB コンポーネントを特定するために使用されます (コマンド source )。

    convert <image> -unique-colors -depth 8 txt:- > output.txt
    
  2. 各色の座標をテキスト ファイルに出力します。

    convert <image> txt:- > coord.txt
    
  3. ターゲット カラーの座標を検索しxます(コマンド source )。手順 1 で取得したターゲット カラーが赤であるとします。y

    grep red coord.txt
    
  4. 最後に、xyをシードとして使用しfloodfillて、円の領域を目的の色に置き換えます (コマンド source )。この場合、私は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 に答える