Tesseract OCR Kütüphaneleri
ve sarmalayıcıları.
Her ana dil için kütüphaneler ve sarmalayıcılar hakkında pratik ve karşılaştırılabilir bir referans: ne kurulur, minimal örnek ve yerel bağlayıcı ile CLI sarmalayıcı arasındaki ödünleşimler.
Hangi kütüphaneyi kullanmalıyım?
Dilinizin satırını seçin, ardından aşağıdaki bölümü okuyun.
| Dil | Önerilen | Tür | Notlar |
|---|---|---|---|
| Python | pytesseract | CLI sarmalayıcı | En basit; Python rehberine bakın. Süreç içi hız için tesserocr. |
| JavaScript / TypeScript | tesseract.js | WASM | Tarayıcıda ve Node'da çalışır; PDF desteği yok. |
| C++ | TessBaseAPI | Yerel | Çekirdek API; maksimum kontrol. |
| Java | Tess4J | JNA bağlayıcı | Yerel kütüphanelerin classpath'te olması gerekir. |
| Go | gosseract | cgo bağlayıcı | libtesseract-dev gerektirir. |
| C# / .NET | Tesseract (.NET) | Yerel sarmalayıcı | NuGet paketi; yerel ikili dosyaları içerir. |
| Rust | leptess | Yerel bağlayıcı | Leptonica + Tesseract ile bağlanır. |
| PHP | thiagoalessio/tesseract_ocr | CLI sarmalayıcı | Composer paketi. |
Python
En geniş ekosistem: bir CLI sarmalayıcı ve birkaç yerel bağlayıcı.
pytesseract— standart CLI sarmalayıcı. Kolay ama çağrı başına bir süreç başlatır.tesserocr— C++ API'sine yerel bağlayıcı; süreç içinde daha hızlı,libtesseract-devgerektirir.pyocr— birden çok motoru destekleyen sarmalayıcı.aiopytesseract— eşzamanlı iş yükleri için asenkron sarmalayıcı.
pip install pytesseract pillow
import pytesseract
from PIL import Image
print(pytesseract.image_to_string(Image.open("image.png")))Tam rehber: Python'da Tesseract OCR (pytesseract).
JavaScript / TypeScript
tesseract.js, motoru WebAssembly aracılığıyla tarayıcıya ve Node'a taşır.
npm install tesseract.js
const Tesseract = require('tesseract.js');
Tesseract.recognize('image.png', 'eng', { logger: m => console.log(m) })
.then(({ data: { text } }) => console.log(text));Not: tesseract.js PDF dosyalarını desteklemez ve tanıma modelini değiştirmez. Yalnızca Node için node-tesseract-ocr, kurulu CLI'yi sarmalar.
C++
Yerel TessBaseAPI, referans entegrasyondur ve çoğu bağlayıcının sarmaladığı şeydir.
#include <tesseract/baseapi.h>
#include <leptonica/allheaders.h>
tesseract::TessBaseAPI* api = new tesseract::TessBaseAPI();
api->Init(NULL, "eng");
Pix* image = pixRead("image.png");
api->SetImage(image);
char* text = api->GetUTF8Text();
printf("%s", text);
api->End(); pixDestroy(&image);libtesseract-dev ve libleptonica-dev ile derleyin (kuruluma bakın).
Java
Tess4J olgun JNA sarmalayıcıdır; JavaCPP presetleri bir alternatiftir.
// Maven: net.sourceforge.tess4j:tess4j
import net.sourceforge.tess4j.Tesseract;
Tesseract t = new Tesseract();
t.setDatapath("tessdata");
String text = t.doOCR(new java.io.File("image.png"));Go
gosseract, Tesseract C++ kütüphanesine bağlanmak için cgo kullanır.
go get github.com/otiai10/gosseract/v2
import "github.com/otiai10/gosseract/v2"
client := gosseract.NewClient()
defer client.Close()
client.SetImage("image.png")
text, _ := client.Text()libtesseract-dev ve libleptonica-dev (Linux) veya Homebrew paketleri (macOS) gerekir.
C# / .NET
NuGet paketi Tesseract, yerel kütüphaneyi sarmalar ve ikili dosyaları içerir.
// dotnet add package Tesseract
using Tesseract;
using var engine = new TesseractEngine(@"./tessdata", "eng", EngineMode.Default);
using var img = Pix.LoadFromFile("image.png");
using var page = engine.Process(img);
Console.WriteLine(page.GetText());Diğer diller
Neredeyse her ekosistem için topluluk bağlayıcıları vardır.
- Rust —
leptess(yerel bağlayıcı),rusty-tesseract(CLI sarmalayıcı). - PHP —
thiagoalessio/tesseract_ocr(Composer, CLI sarmalayıcı). - Ruby —
rtesseract(CLI sarmalayıcı). - C — Tesseract C API'si (
tesseract/capi.h).
CLI sarmalayıcı vs yerel bağlayıcı
Performans için bu seçim dilden daha önemlidir.
| Etken | CLI sarmalayıcı | Yerel bağlayıcı |
|---|---|---|
| Kurulum | Kolay — yalnızca motoru kurun | Geliştirme başlıkları/kütüphaneleri gerekir |
| Çağrı başına hız | Daha yavaş (çağrı başına süreç) | Daha hızlı (süreç içi) |
| Kontrol | Yalnızca CLI bayrakları ve yapılandırma | Tam API (yineleyiciler, kutular, güven) |
| Örnekler | pytesseract, rtesseract, node-tesseract-ocr | tesserocr, Tess4J, gosseract, TessBaseAPI |
Tek seferlik betikler için CLI sarmalayıcı genellikle en hızlı yoldur. Yüksek hacimli veya gecikmeye duyarlı servisler için yerel bir bağlayıcı tercih edin ya da CLI üzerinden gruplayın (performans notlarına bakın).
Kütüphane SSS
Hangi Tesseract kütüphanesini kullanmalıyım?
Yukarıdaki tabloda dilinizin satırını bulun. Hız ve kontrol için yerel bağlayıcı, kolaylık için CLI sarmalayıcı kullanın.
Motoru ayrıca kurmam gerekir mi?
Çoğu sarmalayıcı için evet: kurulu Tesseract motoruna ve dil verilerine bağlıdır. Motorun WebAssembly derlemesini yalnızca tesseract.js içerir.
tesseract.js PDF destekliyor mu?
Hayır. Görüntüleri tanır; önce PDF sayfalarını görsele dönüştürün veya PDF desteği ekleyen bir kütüphane kullanın.
Hangisi en hızlı?
tesserocr, Tess4J ve gosseract gibi süreç içi yerel bağlayıcılar çağrı başına süreç başlatmayı önler. CLI sarmalayıcılarda sayfaları gruplayın ve multiprocessing kullanın.
Sonraki adımlar
Motoru kurun, ardından dilinizi seçin.