[Fluth]画像からテキストを抽出


OCR APIを使用してライブラリに必要な画像を取得し、テキストを識別および抽出する方法について説明します.
まず、次のプラグインが必要です.


pubspec.yamlファイルで
http/path provider/image/image pickerをインストールします.
(この過程で他のプラグインは必要ありません.これらのプラグインは無視してください)
importは、進行中のファイルで上記の操作を実行できます.
私は進行中のプロジェクトに追加しましたが、プライマリファイルでは実行されません.
新しいプロジェクトの場合は、原文を参照してください.

1.ライブラリから画像をインポート

Future _getFromGallery() async {
    final pickedFile = await ImagePicker().pickImage(source: ImageSource.gallery);
    if (pickedFile == null) return;
   

2.画像base 64に変換


使用するAPIはbase 64イメージのみを処理するため、イメージを変換する必要があります.画像を選択しながらテキスト認識にします.
上のgetFromGallery関数に以下のコードを追加してください!
    var bytes = File(pickedFile.path.toString()).readAsBytesSync();
    String img64 = base64Encode(bytes);

3.APIに画像を送信


OCRAPIでapi鍵を取得する必要があります.無料のFree APIキーをクリックし、毎月25000回リクエストし、電子メールを作成すると、キーが取得されます.

鍵の発行が完了したら、https://api.ocr.space/parse/imageという場所に画像を送信する必要があります.url変数にアドレスを含めてmapタイプのペイロードを生成します.
韓国語のテキストを認識するために、「language」:「kor」のコードを追加しました.韓国語のほか、サポートされている言語コードを上記のサイトで確認することもできます!
最後はhttpです.postでデータを送信します.
上記の関数の内部に以下のコードを書いてください.
    var url = 'https://api.ocr.space/parse/image';
    var payload = {"base64Image": "data:image/jpg;base64,${img64.toString()}","language" :"kor"};
    var header = {"apikey" :"발급받은 키 번호"};
    
    var post = await http.post(Uri.parse(url),body: payload,headers: header);
    var result = jsonDecode(post.body);

4.結果値の取得


関数以外のstringタイプのparsedtextを宣言します.ここに抽出されたテキストが含まれます.
String parsedtext = '';
同様に、関数内部で結果値を受信し、テキストを解析テキストに再解析します.
var result = jsonDecode(post.body);
setState(() {
parsedtext = result['ParsedResults'][0]['ParsedText'];
});

5.確認結果



わぁ~出てきてよかった

6.完全なコード

 String parsedtext = '';

  Future _getFromGallery() async {
    final pickedFile = await ImagePicker().pickImage(source: ImageSource.gallery);
    if (pickedFile == null) return;

    var bytes = File(pickedFile.path.toString()).readAsBytesSync();
    String img64 = base64Encode(bytes);

    var url = 'https://api.ocr.space/parse/image';
    var payload = {"base64Image": "data:image/jpg;base64,${img64.toString()}","language" :"kor"};
    var header = {"apikey" :"발급받은 키 번호"};

    var post = await http.post(Uri.parse(url),body: payload,headers: header);
    var result = jsonDecode(post.body);

    setState(() {
      parsedtext = result['ParsedResults'][0]['ParsedText'];
    });
  }
  
ソース:Create a image to text recognition app with flutter