2013年06月16日

小ネタ集「揺れねえスペハリはただのスペハリだ」

忙しくてしばらく更新が止まってしまいましたが、ここ一月くらいにTwitterとかで披露した小ネタをまとめておきます。

続きを読む
posted by eighttails at 22:18| Comment(1) | PC-6001 | このブログの読者になる | 更新情報をチェックする

2012年09月01日

PC-6001初代機&PC-6082ゲット

突然ですが、盆休み前にPC-6001の初代機をヤフオクで落札しました。
初代機は潤沢に出ているので、あまり本気出して入札していなかったのですが、
運良くデータレコーダPC-6082とのセットで1800円で落札できました。
本体、データレコーダともに箱付きでこの値段は拾い物ではなかったかと思います。
例によって簡単な修理は必要だったので、レポートしておきます。
20120828_231600-0.jpg
続きを読む
posted by eighttails at 01:02| Comment(1) | PC-6001 | このブログの読者になる | 更新情報をチェックする

2012年08月31日

スキャン画像ものぐさ補正作戦

Summary:
I wrote a simple bash script that calls scantailor-cli to deskew and clean scanned images.
It processes all jpg images including subfolders.
And it uses xargs to run scantailor-cli up to 4 instances simultaneously.
IT OVERWRITES ORIGINAL IMAGES SO KEEP BACKUP BEFORE TRYING!
Enjoy!

ちょっと前の「P6道とは打ち込むことと見つけたり」の続きです。
スキャンした紙面をScanTailorというソフトで補正すると書きましたが、このソフトはGUIで、基本的に1つのフォルダ内の画像に対してだけ機能します。
これまでためてきた紙面は、打ち込む時になったら補正すればいいやと思っていたので、何も補正せずに掲載号ごとのフォルダに分けて保管していました。
後になってスマホで読もうとしたら、補正なしでは読めたもんではない、かと言ってGUIでは1フォルダずつしか補正できない、という事でScantailorのコマンドライン版を使ってスクリプトで一括補正することにしました。

bashで画像フォルダをカレントディレクトリにした状態で以下のスクリプトを呼び出すとサブフォルダまで再帰的にたどってすべてのJPGファイルを補正(黒枠除去、傾き補正、ノイズ除去、レベル補正、50%縮小)します。
元画像は問答無用で上書きするので(おい)バックアップを取っておいてください。
キモはxargsコマンドを使って複数画像を同時に処理しているところです。

こんなの需要あるかなと思いましたが、海外では意外と自炊の情報交換が盛んで、scantailorもかなり使われている印象なので、一応アップしてみました。

ファイルや元雑誌の種類によるパラメータ調整は全くやっていないにも関わらず、なかなか良好な結果を出しています。
deskew1.png
I/Oのページヘッダーの部分は黒帯に白抜きなので、一部コピーの影と誤認されて消されてるページがありますが、実害はあまりないのでよしとします。(おい)
deskew2.png


#!/bin/bash
processjpg(){
echo processing $PWD/$1...
local BASENAME
BASENAME=`basename $1 .jpg`
convert $1 "$BASENAME".tif
scantailor-cli --layout=1 --disable-content-text-mask --color-mode=color_grayscale --normalize-illumination "$BASENAME".tif .
convert -resize 50% -level 20%,90% $BASENAME.tif "$BASENAME".jpg
rm $BASENAME.tif
}

processdir(){
pushd "$1" > /dev/null

#recursive
IFS=$'\n'
local dirname
for dirname in `ls -1`; do
if [ -d "$dirname" -a "$dirname" != '.' ]
then
processdir "$dirname"
fi
done

#remove temporary file
rm *_d.jpg 2> /dev/null
rm *.tif 2> /dev/null

#unpaper process
#parallel processing
ls -1 *.jpg | xargs -n1 -P4 -I{} bash -c "processjpg {}"
popd > /dev/null
}

SAVEIFS=$IFS
export -f processjpg
processdir "$PWD"
IFS=$SAVEIFS

ラベル:自炊 OCR scantailor
posted by eighttails at 21:11| Comment(0) | PC-6001 | このブログの読者になる | 更新情報をチェックする

広告


この広告は60日以上更新がないブログに表示がされております。

以下のいずれかの方法で非表示にすることが可能です。

・記事の投稿、編集をおこなう
・マイブログの【設定】 > 【広告設定】 より、「60日間更新が無い場合」 の 「広告を表示しない」にチェックを入れて保存する。