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