乱雑に集められたスクリーンショットを整理する方法の覚え書き。
何がしたいのか?
画像を整理するために、ビューワーとターミナルを行き来するのは面倒です。
なので
- ターミナルに一本化したい
- できれば fzf であいまい検索したい
fzfのプレビューに OCR 結果を載せる方法
OCR すればターミナルで取り扱えるというアイデアです。
fzf でディレクトリを絞り込みつつ、プレビューに OCR 結果を表示することで中身を確認します。
# ディレクトリの png ファイルをプレビューで確認しながらあいまい検索
find . -name '*png' | fzf --preview 'tesseract '"{}"' - -l jpn --psm 6 ~/.tesseract/.config'
まず画像が大きいと OCR プレビューが中々表示されないです。
あと、日本語ではまだまだ OCR の精度が足りないかな?という感じがあります。
ビューワーを起動しないでターミナルに画像を表示する
もし、画像をターミナルに表示できれば OCR の精度や待ち時間を考えずに済みます。
ターミナルに画像を表示するためには img2sixel
というコマンドがあります。
# ターミナルにあいまい検索した画像を表示
img2sixel "$(find . -name '*png' | sort -n | fzf --preview 'tesseract '"{}"' - -l jpn --psm 6 ~/.tesseract/.config')"
プレビューで img2sixel
が使えれば簡単なのですが、使えないので次善の策です。
また、ターミナルエミュレータがSixelGraphics
に対応してなければ img2sixel
は使えないので気をつけて下さい。
付録
上のコードで使っている日本語用の tesseract
の .config
をおまけに付けておきます。
数年前に書いたものなので適当に現代化して使ってください。
.config
language_model_ngram_space_delimited_language 0
preserve_interword_spaces 1
chop_enable T
language_model_ngram_on 0
textord_force_make_prop_words F
edges_max_children_per_outline 40