スキャンした本のページが数千ページあります。各ページはJPGとして個別に保存されます。文章は明確ですが、フォントはさまざまで、ページには写真やイラストが含まれています。
各JPGファイルに表示されるすべての単語のリストを作成する必要があります。表示される単語を一覧表示する画像をスキャンするためのコマンドラインツールはありますか?完全なスキャンを行う必要はなく、見積もりを行うだけです。
tesseract はおそらくここで最もよく使用されるソリューションです。ほとんどのパッケージリポジトリで利用できます。
Sudo apt install tesseract-ocr
と使用できます
tesseract input.png out.txt
imagemagick
、pdftotext
(poppler-utils
というパッケージにあるパッケージマネージャー内にあります)と ocrmypdf をインストールします。後者は高速で(ocrは多くのCPUを必要とし、すべてのコアを使用するように構成されています)、オープンソースで頻繁に更新されるOCRソフトウェアです。このアプローチは、Wordにラベルを付けるだけでなく、実際に各Wordに文字列を割り当てようとするので、やりすぎかもしれませんが、オープンソースの一般的なOCRソフトウェアを見つけるのに苦労しました。次に、すべてのJPGを保存したディレクトリで:
$ convert *.jpg pictures.pdf
$ ocrmypdf pictures.pdf scanned.pdf
$ pdftotext scanned.pdf scanned.txt
$ wc -w scanned.txt
Image file.pngを480%アップスケールし、グレースケールに変更し、白で埋め戻し、シャープにしてから、tesseract OCRを使用して抽出します。非常に大きなフォントと黒地に白を除いて、ほとんどの場合私にとってはうまくいきます。フォントが非常に大きい場合は、200%または300%だけアップスケールします。
convert -colorspace gray -fill white -resize 480% -sharpen 0x1 file.png file.jpg
tesseract file.jpg file
結果はfile.txtにあります。
for i in /path_to/*.jpg;do ./myocr.sh $i $(basename $i .jpg);done
#!/bin/bash
# PROGRAM=myocr.sh
if [ "$1" ] && [ -e "$1" ]; then
TMPF=$(mktemp myocr.sh.XXXXXXXX.tif)
DEST="$2"
if [ ! "$DEST" ]; then
DEST="${1%.*}.txt"
if [ -e "$DEST" ]; then
echo "$DEST already exists; please provide a new textfile name" >&2
exit 1
fi
fi
/usr/bin/convert "$1" -colorspace Gray -depth 8 -resample 200x200 -flatten -alpha Off $TMPF \
&& /usr/bin/tesseract $TMPF "$DEST"
EX=$?
/bin/rm -f $TMPF
[ $EX -eq 0 ] && [ "$TERM" ] && echo "created $DEST"
exit $EX
else
echo "Usage: $0 imagefile [textfile]" >&2
echo " creates a plain text file with the text found in imagefile" >&2
exit 1
fi
Linuxユーザーの場合、Calibreを使用してpdfをdocxに変換することほどうまく機能しません。 https://calibre-ebook.com/download_linux