質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.12%
Tesseract

Tesseractは、Googleが提供しているオープンソースのOCRエンジンです。機械学習があり60以上の言語に対応でき、日本語の文字認識も可能です。さらに精度を上げることもできます。

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

解決済

携帯でスクショしたものから、文字認識を行いたい。

Winter_1214
Winter_1214

総合スコア10

Tesseract

Tesseractは、Googleが提供しているオープンソースのOCRエンジンです。機械学習があり60以上の言語に対応でき、日本語の文字認識も可能です。さらに精度を上げることもできます。

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

1回答

0リアクション

1クリップ

588閲覧

投稿2022/10/05 16:53

編集2022/10/05 17:22

実現したいこと・発生している問題・試したこと

今回はイカリング3の下記画像からユーザー名、塗りポイント、KDSのデータを取得した。
イメージ説明(画像はお借りしています。)

文字の認識までは行えたが、iphone 13 pro maxのスクショの画像で行っていたため、他のiphone 13 proでのスクショの画像ではずれてしまったため、どの解像度の画像が来ても、取得できるようにしたい。
他の方法で、テキスト描写域を取得してから行う方法では、取得できない部分があり断念した。

何かいい方法がありましたら、教えていただきたいです。よろしくお願いします。

該当のソースコード

py

path='C:\\Program Files\\Tesseract-OCR\\' os.environ['PATH'] = os.environ['PATH'] + path pyocr.tesseract.TESSERACT_CMD = r'C:\Program Files\Tesseract-OCR\tesseract.exe' engines = pyocr.get_available_tools() engine = engines[0] point = [[170,718,490,772],[820,720,973,775],[973,720,1235,772], [170,875,490,942],[820,885,973,945],[973,885,1235,942], [170,1045,490,1110],[820,1050,973,1112],[973,1050,1235,1110], [170,1208,490,1268],[822,1212,973,1268],[973,1212,1235,1265], [170,1476,490,1535],[820,1485,973,1538],[973,1485,1235,1535], [170,1648,490,1700],[820,1648,973,1704],[973,1648,1235,1700], [170,1808,490,1865],[820,1812,973,1868],[973,1812,1235,1865], [170,1974,490,2035],[820,1978,973,2038],[973,1978,1235,2035] ] file_name = "aaa.png" spl_data_list = [] for i in range(len(point)): txt = engine.image_to_string( Image.open(file_name).crop((point[i][0],point[i][1],point[i][2],point[i][3])), lang="ikaltoon", builder=pyocr.builders.TextBuilder() ) spl_data_list.append(txt) with open(r"ocr_result.txt", "a",encoding="utf-8",errors="ignore") as f:#w print(txt, file=f) img = cv2.imread(file_name) img = cv2.rectangle(img, (point[i][0],point[i][1]),(point[i][2],point[i][3]), (255, 0, 0), 3, 4) cv2.imwrite(file_name, img)

以下のような質問にはリアクションをつけましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

リアクションが多い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

PondVillege

2022/10/05 19:56 編集

「どの解像度の画像が来ても、取得できるようにしたい」と考えて試した/実装したことは,どのようなことになりますでしょうか?可能であれば「テキスト描写域を取得してから行う方法では、取得できない部分があり断念した」という部分も掲載いただけるとアドバイスの域が広がると思います.取得できない部分に規則性や,取得できた部分からの相対性をつかむことができれば問題なく実装できる気もします. 現状,固定のピクセル値を用いてハードコーディングされているように見えますが,これを可変にしたいということですよね?
Winter_1214

2022/10/06 04:40

返信が遅くなってしまい、申し訳ありません。コメントありがとうございます。 アンドロイドでのスクショとiphoneでのスクショで取得しようとしました。実装しようと思い、url(https://onl.bz/QQZbamW)この方のを参考にしていましたが、取得できない部分があり、断念しました。 そうです。ピクセル値を可変したいということで会っています。

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.12%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Tesseract

Tesseractは、Googleが提供しているオープンソースのOCRエンジンです。機械学習があり60以上の言語に対応でき、日本語の文字認識も可能です。さらに精度を上げることもできます。

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。