LinuxでコマンドラインからOCRを使用する方法


30

スキャンされた本のページが数千ページあります。各ページは個別にJPGとして保存されます。文章は明確ですが、フォントはさまざまで、ページには写真やイラストが含まれています。

各JPGファイルに表示されるすべての単語のリストを作成する必要があります。表示される単語をリストした画像をスキャンするためのコマンドラインツールはありますか?完全なスキャンが必要なわけではなく、単なる見積もりです。


github.com/tesseract-ocr/tesseract/wiki/Command-Line-Usage-これはocrmypdfの背後にあるエンジンであり、一般に、セットアップの手順を減らすことができます。
-oakad


2
複製は少し古いですが、新しいものが存在する可能性があります。投票はオープンのままにします。
-Archemar

回答:


25

tesseractはおそらくここで最も使用されるソリューションです。ほとんどのパッケージリポジトリで使用できます。たとえば、

sudo apt install tesseract-ocr

で使用できます

tesseract input.png out.txt

19

インストールしimagemagickpdftotext(という名前のパッケージで見つかったpoppler-utilsいくつかのパッケージマネージャ内)とocrmypdf。後者は高速で(ocrは大量のCPUを使用し、すべてのコアを使用するように構成されています)、オープンソースで、頻繁に更新されるOCRソフトウェアです。このアプローチは、単に単語にラベルを付けるのではなく、実際に各単語に文字列を割り当てようとするため、過剰すぎる可能性がありますが、一般的に良い使いやすいオープンソースOCRソフトウェアを見つけるのに苦労しました。次に、すべてのJPGを保存したディレクトリで:

$ convert *.jpg pictures.pdf
$ ocrmypdf pictures.pdf scanned.pdf
$ pdftotext scanned.pdf scanned.txt
$ wc -w scanned.txt

2
fwiw、これは下記のTesseractを使用します。
-exic

ocrmypdf私の日を作った
毎日の宇宙飛行士

最初にpdfに変換しなければならないという考えは間抜けです。jpgファイルを入力して生のテキストを出力できないのはなぜですか?
マイケル

bashファイルを使用して、すべてのコマンドラインを実行できます。
projetmbc

7

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にあります。


これは、小さなフォントサイズの非常に小さな英語以外のテキストで私にとってうまくいったことです。すごい。
Avio


0

TL; DR

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

ソース:https : //help.ubuntu.com/community/OCR

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.