Flutter OCR in Linux

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

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

Lascia un commento