古いスキャン文書を白黒に変換する方法


25

スキャンされた古いドキュメントがいくつかあり、それらを白黒に変換したい。コンテンツは常に黒で、背景は白でなければなりません:

ここに画像の説明を入力してください

Photoshopを使用しています。


このような暗い背景では非常に難しい場合があります。通常は、Photoshopでレベル調整でこれについては行くだろう
アダムSchuld

あなたの答えがたくさん助けてくれてありがとう。白黒に変換した後もまだ問題が発生していたので、レベルを調整し、グレーイングを続けました。だから私は調整とシャドウ/ハイライトに入りました。これは非常にうまく機能し、それを最大限に台無しにして、ドキュメントの側面に向かって1つの暗い影にし、90%のマジックワンドを使用して、消しゴムを使用してエッジとテキストの周りをきれいにしました。ズームインしてペイントし、いくつかの文字を修正しました。Photoshopが大好きです。

回答:


18

スキャンを制御できる場合、またはスキャンを再スキャンできる場合は、スキャンのコントラスト設定を上げ、見つけられるテキストの最も暗い部分に黒点を設定します。これにより、以下の手順が簡単になります。そうでない場合は、読んでください...

かなり典型的な古いドキュメントスキャンの一部を次に示します。

古い文書のスキャン

詳細はドキュメントによって異なります(たとえば、サンプルよりもコントラストがやや高くなります)が、大まかなアウトラインは同じです。

  • 白黒調整レイヤーを使用してグレースケールに変換します。調整レイヤーパネルのターゲット調整ツール(「スクラブ」)を使用して、できるだけ背景を明るく(右にスクラブ)、テキストを暗く(左にスクラブ)します。

白黒調整レイヤー

黄色のスライダーが右端にあり、黄色がかった背景が明るくなっていることに注意してください。テキストを少しだけ暗くすることができました。

  • レベル調整レイヤーを使用して、コントラストを上げます。

レベル調整

これにより、道の95%を取得できます。スキャンされたドキュメントには通常、右に向かって大きな塊(紙)と左に向かって小さな塊(テキスト)のヒストグラムがあります。適切な設定を見つけるには、ドキュメントを実験する必要があります。

この時点から、画像を複製し、複製を平坦化し、通常のPhotoshopレタッチツールを使用して残りをクリーンアップできます。


ありがとう、私は3番目のバリアントを試してみます、それは私が必要なものです:)
user2496077

1
これは2段階のプロセスです。最良の結果を得るには、両方の手順を使用してください。
アランギルバートソン

非常に素晴らしいtoturial daahは、簡単なタスクを作成するためにスタイルを変更する練習をしたいと思います
リチャードndegese

11

Photoshopについて言及していますが、興味がある場合には、高度なグレースケールのクリーニングと処理を行うGIMPプラグインもあります。

  • スペックルを除去します
  • 黒インクの白い毛穴を埋める
  • 特定のユーザー定義図形を削除します
  • ラインアートの再生が破損している
  • トポロジー分解

これはNuvola Toolsと呼ばれ、主にスキャンされたアートに焦点を当てていますが、試してみてください。

前:

ここに画像の説明を入力してください

後:

ここに画像の説明を入力してください

ソース:GIMPプラグインレジストリ


9

GIMPの場合:

  1. ファイルを開きます。
  2. ドキュメントをグレースケールに変換します:画像→モード→グレースケール
  3. 背景色を選択します:選択→色で、マウスポインタで背景色をクリックします。
  4. 選択した色を反転:選択→反転
  5. 選択をコピーします:編集→コピー
  6. 新しいファイルを作成します:File→New
  7. 新しいファイルのダイアログのフィールド:詳細オプションで、次を選択します:塗りつぶし、OKを押します。
  8. 新しく開いたドキュメントのウィンドウ内の任意の場所をクリックして、選択します。
  9. クリップボードの内容を貼り付けます:編集→貼り付け
  10. 黒いテキストを強調する新しいレイヤーを追加します:レイヤー→可視性から新規、レイヤーのパレットのフィールド:モード乗算を選択します。
  11. 2つのレイヤーを結合します:レイヤー→下に結合
  12. 結果をJPEGファイルとして保存します。ファイル→名前を付けてエクスポートで、jpegを選択し、品質を少なくとも60に設定します。

うわー、これは驚くほどうまくいきました!ありがとう!
アルフレドエルナンデス

この方法は、CS6ソリューションよりも速く見つかりました。印刷するとき、スキャンされた画像の背後にまだ灰色の背景が見えていました。
user919426

2

私はさまざまな言及された方法を含めて試しました。無料のFineThreshold http://www.mehdiplugins.com/english/finethreshold.htmプラグイン。このプラグインは、ドキュメントが均一に照明され、紙自体も均一な品質であれば、すぐに良好な結果を生成します。しかし、これは私の場合ではありませんでした。私はすべての文書の上側が下側よりも明るいことを経験しました。その結果、すべてのメソッドとその部分的な設定は、すべてのページの一部でのみ機能し、残りのページでは機能しません。

最終的に、Zoner Photo Studio v15の一部である「動的なしきい値処理」という効果を見つけました。その評価版はしばらく無料です。近隣の明度に応じて白黒のしきい値を相殺するようです。そのアプリケーションは、ワンステッププロセスのみです。私にとっては、パラメータ「大、値+14」は非常にうまく機能しました。「エディター」の横にあるZonerには、選択したすべての画像に対してバッチを処理できる「マネージャー」インターフェイスも含まれています。最終的に、非常に古い300 dpiレーザープリンターで優れたコントラストで結果を印刷することができました。

今、私が探している唯一の残りのタスクは、不必要なマージンを切り取るための賢明な方法ですべての画像の自動CROPです。手作業でのトリミングは退屈で時間がかかるため、ヒントは大歓迎です。


1

これを行うプラグインがGIMPプラグインレジストリにありました。今ここにアーカイブされてます。

少し前に、これをPythonに翻訳しましたが、かなり速く実行されました。

元の質問の画像に適用した結果は次のとおりです。

ここに画像の説明を入力してください

アランの答えの画像に適用した結果は次のとおりです。

ここに画像の説明を入力してください

とにかく、プラグインのコードは次のとおりです。

from __future__ import division
import random
import gimp, gimpfu

pdb = gimp.pdb

sample_count = 100

def set_image_background_to_white(image, drawable):
  pdb.gimp_context_push()
  pdb.gimp_image_undo_group_start(image)
  pdb.gimp_progress_set_text('Correcting background')

  if drawable.is_gray:
    channel_count = 1
  elif drawable.is_rgb:
    channel_count = 3

  assert not drawable.is_indexed

  # get some random points in the image
  sum_by_channel = [0]*channel_count
  for sample_index in range(sample_count):
    px = pdb.gimp_drawable_get_pixel(drawable,
                                     random.randint(0, pdb.gimp_drawable_width (drawable)-1),
                                     random.randint(0, pdb.gimp_drawable_height(drawable)-1))[1]

    for i in range(channel_count):
      sum_by_channel[i] += px[i]

    pdb.gimp_progress_update(sample_index/sample_count)

  if drawable.is_gray:
    pdb.gimp_levels(drawable, gimpfu.HISTOGRAM_VALUE,
                    0, sum_by_channel[0]/sample_count,
                    1.,
                    0, 255)
  elif drawable.is_rgb:
    for i in range(channel_count):
      pdb.gimp_levels(drawable, 1+i,
                      0, sum_by_channel[i]/sample_count,
                      1.,
                      0, 255)

  pdb.gimp_levels(drawable, gimpfu.HISTOGRAM_VALUE,
                  0, 255,
                  0.6,
                  0, 255)

  pdb.gimp_image_undo_group_end(image)
  pdb.gimp_displays_flush()
  pdb.gimp_progress_update(1.)
  pdb.gimp_context_pop()

gimpfu.register('set_image_background_to_white',           # name
                'Set image background to white',           # blurb
                'No help info yet',                        # help
                'Robert Fleming',                          # author
                'Robert Fleming',                          # copyright
                '2015',                                    # date
                '<Image>/Filters/Set Background to White', # menupath
                'RGB*, GRAY*',                             # imagetypes
                [],                                        # params
                [],                                        # results
                set_image_background_to_white,             # function
                )

gimpfu.main()

-2

フォトショップで試してみてください。グレースケールモード。


1
グラフィックデザインSEへようこそ!ワンライナーだけでなく、より完全な答えを探しています。グレースケールモードでそれを行う方法を説明できますか?
ルチアーノ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.