bREADERで快適に小説を読む為の自炊研究の続き。前の記事では、ノンブル領域を目安に素早く傾きがヒドいページを見つける方法を模索しましたが、これ自体が傾き補正精度を上げる訳ではありません。今回は全く別のアプローチで傾きを軽減するレシピについてです。
実はこれを見つけたのは偶然というか怪我の功名というか、還付金でもっと傾き補正がイケてるスキャナに買い換えようかと情報収集をしていて、(他のスキャナの話ですが)「傾き補正をオフにした方が傾かない」という書き込みを見つけたことがきっかけでした。多くのスキャナの傾き補正機能はeTilTranのような文字や罫線を認識しているのではなく、ページの末端を使っているらしいのです。で、自炊など断裁機で背表紙を裁ち落とした辺は傾いていることも多いので、これがかえって傾きを助長させてしまう(本来比較的まっすぐに取り込めているのに、この傾いたページ境界を使ってかえって傾いて補正されてしまう)という訳です。特に我が家の場合、糊残りでくっついてるページで重送されにくくする為と、スキャン速度を上げる為に、文庫本などは横向きにセットします。糊が残っている可能性がある断裁した側を上(後ろ)に向けるので、特に影響を受けてしまうんじゃないかと(ページ後端で識別するものが多いらしい)。
ということで、手持ちスキャナ(fi-6130)の付属ソフトの傾き補正をむしろオフにしたら他のモードにしてみたらマシになるんじゃね?ってことで実験を始めました。同スキャナの付属ソフトScandAll PROでは、「自動傾き/サイズ検出」という設定項目に「無効」、「後端検出」、「自動用紙サイズ検出」、「黒背景」という選択肢があります。「よしこの4モードを全て試して傾き方に違いが出るか試すぜ」となったんですが、そのうちの最後、「黒背景」というのが思わぬ結果をもたらしてくれたのです。
1. 黒枠つきでスキャンする
実際に「黒背景」モードでスキャンするとこんな画像が吐き出されます。このスキャナがスキャンできるA4サイズに対し、紙がかかっていなかった部分が黒く塗りつぶされている訳です。一見すると使い物にならない訳ですが、ものは試しにとeTilTranに食わせてみるとびっくり!かなりの精度で傾きが補正されています。それもそのはず、下の写真はeTilTranの内部演算プレビューを表示したところですが、中の文面には目もくれず、紙面と黒枠の境界部分の上下辺を基準に補正してくれてます。つまり断裁の影響を受けていない2辺ということですね。
見かけ上、解像度が落ちてるようですがそんなこともなく、単に全体のピクセル数が大きいので縮小されて見えるだけです。
つまり、この画像から黒枠部分をトリミングできればほぼ理想の傾き補正済み画像が得られるという訳です!
2. 黒枠部分を裁ち落とす
おそらくこのような画像を読み込んだ場合、全てのページが「漫画」種別で認識され、基準テクスト領域が全体を囲い、ノンブル領域は未指定になってると思います。まずこの基準テクスト領域を紙面相当部分に指定しなおしてやります。
「領域設定」ウインドウで偶数ページ、奇数ページそれぞれ値を修正していきます。前にも書きましたがeTilTranの領域設定はマウスで範囲指定して、とかできないのでちと面倒ですが、まずWidthとHeight値を「黒枠なしでスキャンした場合に出てくるサイズ」を目安に指定すると手っ取り早いです。300x300dpiでスキャンした文庫本の場合、1180×1760位になります。少し小さめ位にしておくと後の調整が楽です。偶数ページと奇数ページでは多少ズレが出るので片方に合わせたあとで4つの数値を書き写し、X,Yを修正してやります。またページを重ねるうちに段々ズレてくるので、最初の方と最後の方で確認しておきます。枠を小さめにしてどこでチェックしても黒枠が入らないようにすればOKです。
今回の例では、
偶数ページ X:0239 Y:0187 W:1175 H:1760
偶数ページ X:0193 Y:0182 W:1175 H:1760
となりました。基準ノンブル領域は設定しなくていいです。
次に前回も使用した「自動領域補正」を使います(失敗してもいいよう適宜プロジェクトを保存しつつ作業して下さい)。「トリミング範囲を基準領域から自動計算する」にチェック。余白指定はお好みで(指定したピクセル分の余白が各4辺に足されるようです)。中段は「基準テクスト領域に、テクスト領域のみを合わせる」を選択(ここの選択肢の違いはよくわかってませんが、まぁノンブルは指定してないのでノンブルを使わないのがいいだろう、位の理解w)。
すると今回の例では偶数ページだけが少し右へズレてトリミングされてしまいました。とはいってもこの段階で実際にトリミングが完了している訳ではないので補正が可能です。まず右サイドバーの「テキスト補正」欄を見ながらカーソルキーでプレビューを動かして、いい感じに赤枠に紙面が収まる位置を見つけます。今回はX(水平)方向に-25でOKそうです。この数字だけ記憶し、一旦補正を0に戻します。
次の同じだけの補正を全偶数ページにだけ一括適用させます。「ツール」->「一括補正」を開き、写真のような感じで指定し「適用」をクリックすれば、全偶数ページが25左に移動してピッタリ赤枠内に収まってくれます。部分ごとにパラーメーターを変えて適用することもできるので上手く使いこなして下さい。
3. 後処理
σ(^^)の場合、この後はヒストグラムを調整して文字を濃くするんですが、ひとつ困ったことがあります。全てのページが一律で「漫画」に分類されてしまっているので、挿絵のページを除外してヒストグラム変更する、といったことができません。
仕方ないので手作業で分類しなおす訳ですが、その際は、Explorerでサムネイル一覧表示にしてやれば挿絵ページをすぐ見分けられるので、それと見比べながら作業するのが良いかと思われます。
eTilTranの作者さんは最近はChainLPばかりメンテされてeTilTranはあまり手を掛けて下さってないですが、個人的にはこれが一番便利で使い出があると思います。なんとかマウスで領域指定できるようになってくれるとさらに神なんですけどねぇ。
2012.04.19追記:コミックの場合、「原稿外枠しきい値」を調整する
そもそもeTilTranにはこうした黒枠がついた画像を識別し分離する機能がついていました。設定->原稿外枠というカテゴリのパラメーターで、「原稿外枠しきい値」と「原稿外枠識別」の2つです。後者は単なるON/OFFなのでまぁONにしてきます。で、前者は文字通り、外枠として認識する基準値を指定します。基準の決め方は上記公式サイトの説明にあるように、「モノクロ化閾値上限」をかえつつ、内部演算プレビューで「二値画像」を選択した状態で、綺麗に中身が真っ白になり、外枠だけが黒くなる状態を探します。その数値をこの「原稿外枠しきい値」に指定して、再読込すればOKです。説明には50~80とありましたが、カラーページなどはかなり低くしないと上手く分離できませんでした。まぁ、白黒のページで基準領域が決まったら、あとは「原稿外枠識別」をOFFにしてカラーページだけ再読込してやればヨサゲ(ページ毎の再読込は、左サイドバーのリストを右クリックすればメニューがあります)。
Kindle Paperwhite向け自炊レシピ
758×1024と高解像度化して、リフローをしないで余白除去だけをするレシピを再構築。 ■ChainLPかPDFDietEasyか PDFDietEa…