Ana içeriğe geç
Geliştirici rehberi

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ÖnerilenTürNotlar
PythonpytesseractCLI sarmalayıcıEn basit; Python rehberine bakın. Süreç içi hız için tesserocr.
JavaScript / TypeScripttesseract.jsWASMTarayıcıda ve Node'da çalışır; PDF desteği yok.
C++TessBaseAPIYerelÇekirdek API; maksimum kontrol.
JavaTess4JJNA bağlayıcıYerel kütüphanelerin classpath'te olması gerekir.
Gogosseractcgo bağlayıcılibtesseract-dev gerektirir.
C# / .NETTesseract (.NET)Yerel sarmalayıcıNuGet paketi; yerel ikili dosyaları içerir.
RustleptessYerel bağlayıcıLeptonica + Tesseract ile bağlanır.
PHPthiagoalessio/tesseract_ocrCLI sarmalayıcıComposer paketi.

Python

En geniş ekosistem: bir CLI sarmalayıcı ve birkaç yerel bağlayıcı.

python
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.

javascript
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.

ocr.cpp
#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.

Ocr.java
// 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.

main.go
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.

Program.cs
// 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.

CLI sarmalayıcı vs yerel bağlayıcı

Performans için bu seçim dilden daha önemlidir.

EtkenCLI sarmalayıcıYerel bağlayıcı
KurulumKolay — yalnızca motoru kurunGeliştirme başlıkları/kütüphaneleri gerekir
Çağrı başına hızDaha yavaş (çağrı başına süreç)Daha hızlı (süreç içi)
KontrolYalnızca CLI bayrakları ve yapılandırmaTam API (yineleyiciler, kutular, güven)
Örneklerpytesseract, rtesseract, node-tesseract-ocrtesserocr, 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.

Motoru kurun, ardından dilinizi seçin.