スキャンした画像の処理手順メモ

Ubuntu でスキャンしたマルチページ tiff を処理する手順のメモ。 tiff から整形した djvu に変換している。 zsh で作業した。

ページごとに分割

mkdir split; for f in *.tif
tiffsplit $f split/$f:r

で tiff を分割する。

cd split

http://transitive.info/2011/01/15/jisui-process-images/ のスクリプトで 偶数ページと奇数ページに分ける。

mkdir odd even; pick-out-arguments *.tif | xargs mv -t odd; mv *.tif even

余白の削除

以前は単純に for を使って実行していたのだが、デュアルコアを生かせるように xargs を使って処理をする。 gimp などで開いて余白の部分を決め、余白の切り取りと回転を行って bmp にする。

cd odd
from=tif; to=bmp; ls *.$from | sed -e "s/.$from$//" | xargs --replace -n1 -P3 convert -crop 2800x1940+120+80 -rotate 90 {}.$from {}.$to

次に偶数ページの方も処理する。サイズは同じにする。

cd ../even
from=tif; to=bmp; ls *.$from | sed -e "s/.$from$//" | xargs --replace -n1 -P3 convert -crop 2800x1940+120+150 -rotate -90 {}.$from {}.$to

スキャンするときに方向を間違ったのでひっくり返っていて、こちらは -90 度回転している。

cd ..
mv */*.bmp .
i=0; for f in *.bmp
do
i=$((i+1))
mv $f `printf "%03d" i`.$f:e
done

として bmp ファイルを集めて連番にする。

qiv -m *.bmp

などで出来を確認する。

djvu に変換

モノクロの場合は pbm から djvu に変換する。

from=bmp; to=pbm; ls *.$from | sed -e "s/.$from$//" | xargs --replace -n1 -P3 convert {}.$from {}.$to
from=pbm; to=djvu; ls *.$from | sed -e "s/.$from$//" | xargs --replace -n1 -P3 cjb2 {}.pbm {}.djvu
djvm -c doc.djvu *.djvu

これで doc.djvu ができる。

また、8色のグレーにする場合は

from=bmp; to=png; ls *.$from | sed -e "s/.$from$//" | xargs --replace -n1 -P3 convert -depth 16 {}.$from {}.$to
from=png; to=pgm; ls *.$from | sed -e "s/.$from$//" | xargs --replace -n1 -P3 convert -colors 8 {}.$from {}.$to 

のように何回かにわけて減色するとよいらしい。

from=pgm; to=djvu; ls *.$from | sed -e "s/.$from$//" | xargs --replace -n1 -P3 cpaldjvu -dpi 300 {}.$from {}.$to

で djvu にする。解像度は 300 で統一しているので、そのように指定した。

Tags of current page

, , , ,