Flutter tabanlı bir OCR uygulaması. Kamera veya galeriden alınan fiş / fatura görsellerinden firma adı, tarih, toplam tutar ve fiş numarası gibi alanları otomatik olarak ayıklar.
Proje klasörü:
stajim/
- Kamera veya galeri ile fiş görseli seçme
- Google ML Kit ile Latin karakter setinde metin tanıma (OCR)
- Türkçe fiş formatlarına uygun regex tabanlı alan çıkarma
- Firma / kurumsal unvan
- Fiş tarihi
- Toplam tutar (
TOPLAM,TUTAR,ÖDENECEK,TLvb.) - Fiş / fatura numarası
- Tutarları Türkçe biçimden normalize etme (
1.234,56→1234.56) - Çıkarılan alanları düzenlenebilir formda gösterme
- Bilsoft marka renkleriyle sade arayüz
- Kamera veya galeriden bir fiş seç
- Önizlemeyi kontrol et
- Verileri Tara ve Getir ile OCR’ı çalıştır
- Doldurulan alanları gözden geçir / düzenle
- Gerekirse Temizle ile sıfırla
| Katman | Teknoloji |
|---|---|
| Framework | Flutter (Dart SDK ^3.10.8) |
| OCR | google_mlkit_text_recognition |
| Görsel seçimi | image_picker |
| UI | Material 3 |
| Platformlar | Android, iOS |
ocr-app/
├── README.md
├── LICENSE
└── stajim/ # Flutter uygulaması
├── lib/
│ └── main.dart # UI + OCR + alan çıkarma mantığı
├── android/
├── ios/
├── test/
└── pubspec.yaml
Ana mantık stajim/lib/main.dart içinde toplanmıştır:
_resimAl— kamera / galeri seçimi_verileriAyikla— ML Kit OCR + regex ile alan doldurma_normalizeTutar— tutar biçimi dönüşümü
- Flutter (stabil kanal önerilir)
- Android Studio / Xcode (hedef platforma göre)
- Fiziksel cihaz veya emülatör (kamera için fiziksel cihaz önerilir)
# Depoyu klonla
git clone https://github.com/salihkkus/ocr-app.git
cd ocr-app/stajim
# Bağımlılıkları yükle
flutter pub get
# Cihazları kontrol et
flutter devices
# Uygulamayı çalıştır
flutter runAndroidManifest.xml içinde tanımlı:
CAMERAREAD_EXTERNAL_STORAGE
Kamera ve fotoğraf kütüphanesi kullanımı için ios/Runner/Info.plist dosyasına kullanım açıklamaları eklenmelidir:
<key>NSCameraUsageDescription</key>
<string>Fiş okumak için kamera erişimi gereklidir.</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>Fiş seçmek için galeri erişimi gereklidir.</string>- Seçilen görsel
InputImageolarak ML Kit’e verilir. - Tanınan metin satırlara bölünür ve büyük harfe normalize edilir.
- Regex kuralları ile ilgili alanlar aranır:
- Firma:
A.Ş.,LTD.,MARKET,RESTORANgibi kurumsal ifadeler - Tarih:
dd.mm.yyyy,yyyy-mm-ddvb. - Tutar: anahtar kelime + tutar değeri (gerekirse bir sonraki satır)
- Fiş No:
FİŞ NO,FATURA NObenzeri etiketler
- Firma:
- Bulunan değerler ilgili
TextEditingControlleralanlarına yazılır; kullanıcı gerekirse düzeltir.
Not: Sonuç kalitesi fiş görselinin netliğine, ışığa ve fiş düzenine bağlıdır. Alanlar her zaman düzenlenebilir bırakılmıştır.
cd stajim
# Analiz
flutter analyze
# Testler
flutter test
# Release derleme (Android)
flutter build apkBu proje MIT License ile lisanslanmıştır.
Copyright (c) 2026 Salih Karakuş