Share

Flutter OCR in Linux

Flutter OCR

L’OCR (Optical Character Recognition) è una tecnologia che consente di convertire immagini contenenti testo in dati leggibili e modificabili. Grazie a Flutter, il framework open-source di Google per lo sviluppo di applicazioni, è possibile implementare soluzioni OCR su Linux in modo semplice ed efficace.

Utilizzo di Flutter per l’OCR Flutter offre pacchetti dedicati all’OCR, come flutter_tesseract_ocr, che si basa su Tesseract 4, un motore OCR avanzato con supporto per oltre 100 lingue. Questo pacchetto è compatibile con Dart 3 e offre funzionalità di riconoscimento testuale basate su reti neurali (LSTM).

Prerequisiti

  • Un sistema Linux con Flutter installato.
  • Tesseract OCR installato.
  • Un editor di testo
Flutter OCR
Flutter OCR

Installare Tesseract OCR

Tesseract è un motore OCR open-source. Puoi installarlo con il seguente comando:

sudo apt install tesseract-ocr

Per verificare l’installazione, esegui:

tesseract --version

Configurare Flutter con OCR

Per integrare OCR in Flutter, utilizziamo il pacchetto tesseract_ocr.

Creazione di un nuovo progetto Flutter

Se non hai ancora un progetto Flutter, creane uno:

flutter create flutter_ocr_linux
cd flutter_ocr_linux

Aggiungere dipendenze

Apri il file pubspec.yaml e aggiungi:

dependencies:
  flutter:
    sdk: flutter
  tesseract_ocr: ^0.3.0

Poi esegui:

flutter pub get

Implementazione OCR

Apri il file lib/main.dart e modifica il codice:

import 'dart:io';
import 'package:flutter/material.dart';
import 'package:image_picker/image_picker.dart';
import 'package:tesseract_ocr/tesseract_ocr.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: OCRScreen(),
    );
  }
}

class OCRScreen extends StatefulWidget {
  @override
  _OCRScreenState createState() => _OCRScreenState();
}

class _OCRScreenState extends State<OCRScreen> {
  String _extractedText = "";

  Future<void> _performOCR() async {
    final picker = ImagePicker();
    final pickedFile = await picker.pickImage(source: ImageSource.gallery);

    if (pickedFile != null) {
      String text = await TesseractOcr.extractText(pickedFile.path);
      setState(() {
        _extractedText = text;
      });
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text('Flutter OCR su Linux')),
      body: Column(
        mainAxisAlignment: MainAxisAlignment.center,
        children: [
          ElevatedButton(
            onPressed: _performOCR,
            child: Text('Seleziona Immagine e Leggi Testo'),
          ),
          SizedBox(height: 20),
          Text(_extractedText, textAlign: TextAlign.center),
        ],
      ),
    );
  }
}

Eseguire l’app

Avvia l’app con:

flutter run

Seleziona un’immagine contenente testo e verifica il risultato.

Conclusione

L’integrazione di OCR in Flutter su Linux è semplice grazie a Tesseract OCR e il pacchetto tesseract_ocr. Questo esempio può essere ampliato per supportare più lingue e migliorare la precisione del riconoscimento

Potrebbe interessarti