先日からはてなブログのランキングというのに参加している!
特になにかあるわけではないけど、せっかくなので…という程度の理由!(^^;
よかったら上のバナーをクリックしてくれると嬉しいです!(^o^)
先日、ブログやTwitterでダンプリスト入力ツールを作ったというご報告をした。
趣味…というよりは、とある件で必要になってしまったため、急遽作成って感じだ!!
仕様検討もせず急いで作ってしまったからか、使い始めてみると色んなところに不満を感じるようになった!
拡大表示は必要なかった!
右側のアスキー文字は見る機会がない
画面に並べた時、小さいウィンドウの方が扱いやすい
OCRでの取り込みがツールの外でしか出来ない
ページの関係でダンプが2〜3つに分断してる事がある
これら以外にもプログラムの内部構造が良くなかったりなど、不満を上げたらキリがない!
こんなたくさんの改良をするのならば、いっそ作り直そう!となった(^^)
そして新規に開発したのが↓コチラ↓
見た目はそんな変わんないじゃん!と言われそうだけど、まさにそう(^^;
でも内部構造は大〜きく変わった(^-^)
描画に対する処理負荷もかなり改善された!
まず大きさだけど、こんな感じの違いがある!
ダンプリストの編集を見つつ、撮影したダンプリストの写真を同一画面で見ていたりすると、そのたびに大きな編集ウィンドウが邪魔になっていた。
アスキー文字は思ったよりも見てなかったので、思いきって削った(^^)
OCRはYao Tadahito(八尾 唯仁)さん(@eighttails)のHEXモデルを使ったら、精度が爆上がりする事がわかった!
このおかげもあり、この先は手入力よりもOCRが中心となるであろう未来が見えたので、拡大文字自体が必要なくなってしまった!
前回の目玉機能だったのにww
まずは素の状態で起動するとこんな感じの画面が出る。
前作にあったEmacsバインドのカーソル移動はそのまま継承している。
テンキーには対応して無く(ウチのMacBookProにはテンキーがそもそもない…)、あくまでもフルキーでのみ入力が可能だ。
一番下の「読んでいるファイル」の表記は、撮影用に名前消し機能をつけた!
私の名前限定だ!ww
↑ESCキーを押すとメニューが表示される。
1980年代のメニューっぽく見えるが、完全に作者の趣味だねw(^o^)
実はMacのメニューバーにメニューを追加する方法を知らないのですわ…orz
SDLで(ソースレベルで良いので)Mac/Linux/Windowsの互換性を保ちつつ、どうやったら出来るんだろ??(-_-;
大した意味もなくAbout画面も用意した!
こういうのにも凝りまくってテンションあげていくぜーw (^^;;
メニューからOCRを選ぶと、こんな画面が出る。
このためだけにファイラー作った!(^-^;;
それっぽいファイラーを作るのって1992年以来なので30年以上ぶりだ!
当時はX68000で作ったなぁ…(遠い目
そしてカーソルを動かしていくと、右側に画像を表示する機能をいれた。
これはOCRするたびに「あれ??次はどの画像ファイルだっけ?」と中身を覗いていた苦い経験からだ(TT)
主にアドレスが確認出来れば良いので、画像の左上しか表示させていない(^^)
↓リターンを押せばOCRが実行されて……(画面上部にメッセージ)
↓終わるとこんな感じに、認識した文字列がずらずらーっと表示される。
実際のOCR処理は、
・OCRで認識されやすいように画像加工
・tesseract実行
・出力されたテキストデータをもう1段階加工
などをしてデータを整頓している。
一応、tesseract以外でも認識率があがる努力はしているつもり(^^)
アドレスで入力状態になっているのは「OCRで認識したアドレスはコレだけど、ホントにあってる?間違ってたら修正して」という意図だ。
いったんデータをメモリに書いてしまうと取り消す事が難しいため、ここで使用者のチカラをアテにして、確実にアドレスを確定させる。
メニューを終えて戻ると、さっきOCRで読み込んだデータが見える…という感じだ。
ちなみにこの画像だと認識率100%!
100%ってすごくない???(@_@;;;
データとチェックサムが違っていると、こんな感じに赤文字でどこが変か教えてくれる。
この場合、データもそうだけどチェックサム自体が間違ってる可能性もある。
そこで使うのがメニューにあるCheckSumモード。
ここで正しいチェックサムを入力する。
そうするとデータがおかしいのか、チェックサムがおかしいのかがわかる…という事だ(^^)
あとダンプリストの掲載で良く見かけるのが、ページをまたいだブロック!
今までは複数ページにまたいでる部分は、素直に手入力をしていた。
そんな数が多いわけじゃないからいいでしょ…と(^^;;
でもコレも可能ならばOCRで読み込んじゃいたい!
そこで、今回はこのページに跨いだデータもOCR出来る機能を入れてみた!
↑こんな感じに切り取った写真データを用意する。
縦横の幅は特に意識しなくても良い(ツール側でよしなに合わせてくれる)
↑ファイルの上でスペースを押すと、そのファイルが選択される。
選択された画像を合成することで、一気にOCR処理をしようって魂胆だ(^^)
ファイルの頭に番号がついているのは、どの順番で画像を合成するのかの指定。
この辺りの実装のダサさも良い感じだw
ぐは!
合成したデータであっても認識率100%が出た!(^o^)
おわりに
手入力が好きなんだぜ!
……と言い張って開発したダンプリスト入力ツールだったけど、気がつけばOCRに便利なツールが出来上がってしまったw
実際に使ってみると…これだけダンプの認識率が高いと、すごく手軽に入力が出来る。
写真さえ撮ってしまえば、あとはほぼ単純作業だ!
むしろ写真を撮って加工する方が圧倒的に時間がかかる!(^-^)
横8バイト並びのダンプなどにはまだ対応していないが、プログラムのいたる所に布石だけは残してあるので、対応する事自体はそんなに難しくない…と思われる!(^^)
よーし!今まで入力を控えてたゲームも入力してみるぞ!(^^)
…はて、入力したデータって、どうやってエミュレータに入れ込むんだっけ?(^-^;;
ではまた次回!(^-^)ノ