蛙

画像からテキストを抽出するにはどうすればよいですか?

ここで言っているのは、スキャンしたファイルではなく、教室の黒板を高解像度で撮影し、手書きできれいに書き込まれた画像や、レシピ本のページを写真に撮って、そのレシピをテキスト形式で欲しいときなど、ありふれた画像のことです。

そのための無料のオープンソフトウェアはありますか?

tesseract を試してみましたが、結果はひどいものでした。

答え1

tesseract-ocr他のものと比べて素晴らしいものになるでしょう。インストールするには、以下のコマンドを実行してください。

sudo apt-get install tesseract-ocr

使用方法は でtesseract filename.jpg output.txtoutput.txtファイルが生成されます。

適切な言語を選択することを検討してください。その場合、tesseract-ocr-LANGパッケージをインストールする必要がありますLANGISO 639-2 言語コード現在、18.04 リポジトリには 123 の言語があります。次に例えば:

tesseract mySpanishText.jpg output -l spa

答え2

画像からテキストを抽出する行為は「テキスト抽出」と呼ばれOCR、Ubuntuには専用のWikiページがあります。OCCRそのページから:

利用可能なOCRツール

Ubuntu Universe リポジトリには、次の OCR ツールが含まれています。

  1. ゴックル- コマンドラインOCR
  2. ファジー- 画像添付ファイルをチェックするspamassassinプラグイン
  3. libhocr0- ヘブライ語OCR
  4. オクラド- 光学文字認識プログラム
  5. ocrフィーダー- 文書レイアウト解析および光学文字認識システム
  6. オクロプス- 文書分析およびOCRシステム
  7. テッセラクトOCR

Ubuntu マルチバース リポジトリには次のものも含まれています:

  1. 楔形文字- 多言語OCRシステム

一部のパッケージは古くなっていますが、非公式の新しいパッケージは以下にあります。Alex_P PPA(PPA追加コード:ppa:alex-p/notesalexp)。PPAチェックを一度も使用したことがない場合はPPAからソフトウェアを追加する方法

編集: コメントにある通りクララOCR存在しますが、Hardy でスタックしてしまい、同社の Web サイトの最終更新日は 2009 年となっています。

答え3

試すFrog は、GNOME 用の直感的なテキスト抽出ツール (OCR) です。

スクリーンショット

Snap Storeから入手Flathubでダウンロード

答え4

tesseract-ocr抽出できる文章から画像。私はテストしましたgocrが、うまく機能しませんでした。tesseract-ocr

インストール:

sudo apt-get install tesseract-ocr

Pythonすべての画像ファイルを変換するプログラムpng現在のディレクトリ内の拡張子TXTファイル

#!/usr/bin/env python3.10
import os
import subprocess

def list_files(path):
    files = []
    for name in os.listdir(path):
        if os.path.isfile(os.path.join(path, name)):
            files.append(os.path.join(path, name))
    return files

def convertImageToText(img_file):
    #process = subprocess.Popen(['tesseract', img_file,
    #    ''.join(img_file.rsplit('.png', 1))])
    os.system(f"tesseract {img_file} {''.join(img_file.rsplit('.png', 1))}")


def startOperation():
    list_file = list_files(".")
    print(list_file)
    for img_file in list_file:
        if img_file.lower().split(".")[-1] == "png":
            convertImageToText(img_file)

startOperation()

関連情報