スキャンPDFの画質補正・傾き補正

スキャンPDFの画質・傾き・ゴミ・黒枠・向きを補正

スキャンPDFの画質・傾き・ゴミ・黒枠・向きを補正

1ファイル選択2設定3処理4保存

PDFを選ぶと内容を解析して表示します。

ファイルはこのブラウザ内でのみ処理されます。サーバーにはアップロードされません。

黄ばんだ紙色の除去・コントラスト補正・白黒二値化でスキャンPDFを鮮明に

別のツールで続ける
作業の設定
設定

補正したページは画像として作り直されます。元のテキストの検索・選択・コピーはできなくなります(必要なら補正後にもう一度OCRを行ってください)。

暗号化されたPDFは先にパスワードを解除してください。ページの内容を中心に処理するため、しおり・添付・フォーム・署名の保持は保証されません。原本を保管し、結果をご確認ください。

スキャンPDFの画質補正・傾き補正について

スキャン補正は5つのタブに分かれています。「補正」は紙色・明暗・白黒化、「傾き」は曲がったページの修正、「ゴミ取り」は小さな点の除去、「余白」は黒い縁・パンチ穴・綴じ影の除去、「向き」は横倒しや逆さのページを正しい向きにします。

タブによってPDFの扱いが根本的に違います。傾きと向きはページを画像化せず座標だけを回すため、テキスト検索も画質もそのまま残ります。補正・ゴミ取り・余白はページを画素に描画して修正し、その画像でページ内容を置き換えるので、元のテキスト層は消えます。順番は、向き → 傾き → 余白・ゴミ取り → 補正 → OCR が無難です。

補正タブ:黄ばんだ紙を白くする仕組み

ページの明るい側30%の画素の平均色を「紙の色」とみなします。古い書類ならRが高くBが低い黄色になるのが普通です。各チャンネルをその値が255になるよう掛け算するホワイトバランスを行い、暗いスキャンが白飛びしないよう倍率は最大2.5倍、基準値は最低96に制限しています。

続いて自動レベルで、最も暗い0.5%と最も明るい0.5%を切り捨てて残りを0〜255に広げます。両端の差が32未満(ほぼ白紙)なら広げません。この歯止めがないと、白紙ページの紙の繊維模様が黒いまだらに増幅されます。明るさ・コントラストはこの曲線の後にかかります。

白黒(二値化)はSauvola法

ページ全体に1つのしきい値を使うと、綴じ側の影の文字はつぶれ、明るい部分の薄い文字は消えます。このツールは画素ごとに周囲の窓(約1/4インチ、200DPIで51ピクセル)の平均mと標準偏差sを求め、T = m × (1 + k × (s/128 − 1))をしきい値にします。SauvolaとPietikäinenが2000年に文書の二値化向けに発表した式です。「白黒の感度」がkで既定値0.25。上げるほど薄い線が白に寄ります。

ばらつきのほとんどない平坦な部分ではこの式がノイズを拾いやすいため、はっきり暗くない限り紙として扱います。結果は1ビット画像を可逆のFlateで圧縮して格納するので、3モードの中で最も小さくなります。鉛筆書きや写真、朱肉の印影が大事な文書はグレースケールかカラーを選んでください。こちらはJPEG(既定品質80)で保存されます。

傾きタブ:画素に触れずに回す

各ページを長辺1400ピクセルで描画し、暗い画素をいくつもの角度で投影して、行方向のヒストグラムが最も鋭くなる角度を探します(投影プロファイル法)。±15°を0.5°刻みで調べ、最良の角度の周りを0.1°、0.02°刻みで絞り込みます。外周1.5%はスキャナーの縁に引きずられないよう除外します。

求めた角度はページ内容の前に回転行列を付けて適用します。再描画しないので、テキスト層もベクター図形も元画像の画質もそのままです。ただし注釈とフォームフィールドは内容とは別に保存されているため一緒には回りません。該当ページは完了メッセージに表示されます。回した角が切れるのを避けたい場合は「切れ防止の縮小」をオンにします。

ゴミ取り・余白タブ:大きさと形で消す対象を選ぶ

ゴミ取りは明るさ200未満をインクとみなし、上下左右につながったインクの塊が3ピクセル以下なら白で塗ります。上限を大きくすると句読点や濁点、半濁点まで消えることがあるので、既定値から少しずつ上げてください。

余白タブは3つを別々に探します。黒い縁はページの端につながる暗い領域を、端から25mm以内に限って塗りつぶして検出します。パンチ穴はその範囲内にある直径3〜12mmの丸い塊で、完全な円の面積比(π/4≈0.785)に近いかで判定します。綴じ影は列(または行)ごとの明るい側90%点の明るさを紙の明るさと比べ、暗い帯だけを持ち上げます。縁と穴は純白ではなく検出した紙の色で塗ります。

向きタブ:OCRで4方向を試す

Tesseractには向き判定(OSD)機能がありますが、旧エンジンのデータが必要で、LSTM専用の当サイトのエンジンでは使えません。代わりに0・90・180・270°回した画像をそれぞれ認識し、信頼度55%以上の単語の「文字数×信頼度」の合計が最大の向きを選びます。1位が2位の1.5倍に届かなければ「不確実」と表示します。適用はページの/Rotate値を変えるだけなので無劣化です。なお認識言語は韓国語+英語か英語のみで、日本語だけのページは判定の手がかりが少なくなります。

例

白黒A4の生データ量

入力
A4、200DPI、白黒モード
結果
約1654×2339ピクセル、圧縮前 約473KB

1行は1654÷8の切り上げで207バイト、207×2339=484,173バイトです。同じサイズの8ビットグレースケールは約3.9MBで、実際のファイルはFlateやJPEGでずっと小さくなります。

2°補正後の切れ防止縮小

入力
A4(595×842pt)、2°補正、切れ防止オン
結果
内容を約95.4%に縮小

回転後の幅は595×cos2°+842×sin2°≈624pt。595÷624≈0.954倍に縮めると四隅がページ内に収まります。

二値化の窓の大きさ

入力
300DPIで補正
結果
Sauvolaの窓75ピクセル

窓は1/4インチ(DPI÷4)を奇数にそろえた値です。300÷4=75、200DPIでは50を奇数にして51になります。

使い方

  1. PDFを読み込み、タブ(補正・傾き・ゴミ取り・余白・向き)を選びます。
  2. プレビューの前後比較を見ながら感度やサイズの基準を調整します。
  3. 対象ページと解像度を決めて実行します。
  4. 検索が必要なら、結果をPDF OCRに通します。

よくある質問

補正したら文字検索できなくなりました。

補正・ゴミ取り・余白はページを画像として作り直すため、元のテキスト層が消えます。傾き・向きはテキストを保ちます。補正後にPDF OCRをかければ再び検索できます。

白黒にすると細い線が途切れます。

白黒の感度(k)を下げると薄い線が黒で残ります。解像度を300DPIに上げるのも効果があります。

傾き補正後に署名欄の位置がずれました。

フォームフィールドと注釈はページ内容と別物で、一緒には回転しません。補正前に入力を済ませてフラット化しておくと安全です。

パンチ穴が消えません。

端から25mm以内、直径3〜12mm、丸い形のものだけを探します。破れた穴や端に接した穴は縁として扱われるか見逃されることがあるので、感度を上げてみてください。

関連ガイド

出典

基準日:

プライバシーとデータの扱い