Cara mengekstrak teks dari gambar java menggunakan Aspose.OCR & GroupDocs.Parser
Dalam aplikasi Java modern, mengubah gambar dokumen menjadi teks yang dapat dicari dan diedit merupakan kebutuhan utama untuk otomatisasi, kepatuhan, dan analitik. Cara mengekstrak teks dari gambar java adalah pertanyaan tepat yang dijawab panduan ini. Anda akan belajar menghubungkan optical character recognition (OCR) berakurasi tinggi dari Aspose.OCR dengan parsing yang sadar tata letak kuat dari GroupDocs.Parser, sambil menangani stream sehingga solusi ini cocok untuk layanan web, pekerjaan batch, dan alat desktop.
Jawaban Cepat
- Library apa yang menangani OCR? Aspose.OCR memberikan akurasi terdepan di industri untuk teks cetak.
- Komponen apa yang mem‑parsing output OCR? GroupDocs.Parser mengubah string mentah menjadi tabel, formulir, dan paragraf terstruktur.
- Versi Java minimum? JDK 8 atau lebih baru.
- Apakah saya memerlukan lisensi untuk produksi? Versi percobaan dapat digunakan untuk evaluasi; lisensi penuh menghilangkan watermark dan membuka semua fitur.
- Bisakah saya memproses aliran gambar secara langsung? Ya—kedua API menerima
InputStream, cocok untuk unggahan HTTP.
Apa itu “mengekstrak teks dari gambar”?
Mengekstrak teks dari gambar berarti mengubah karakter visual—seperti halaman yang dipindai atau foto struk—menjadi string Unicode biasa yang dapat dicari, diindeks, atau diubah oleh kode Anda. Mesin OCR menganalisis pola piksel, mengenali bentuk glyph, dan menghasilkan representasi teks.
Mengapa menggabungkan Aspose.OCR dengan GroupDocs.Parser?
Menggabungkan Aspose.OCR dengan GroupDocs.Parser memberi Anda pengenalan karakter berkualitas tinggi serta analisis tata letak yang kuat. Aspose.OCR mengekstrak teks mentah dari gambar, sementara GroupDocs.Parser menginterpretasikan teks tersebut untuk mengidentifikasi tabel, formulir, dan struktur multi‑kolom, mengembalikan data dalam format terstruktur siap untuk pemrosesan lebih lanjut.
- Akurasi: Aspose.OCR memberikan tingkat pengenalan terdepan di industri.
- Fleksibilitas: GroupDocs.Parser dapat mendeteksi tabel, bidang formulir, dan tata letak multi‑kolom, mengembalikan data dalam format JSON atau objek Java.
- Ramahan Stream: Kedua pustaka membaca langsung dari
InputStream, menghilangkan file sementara dan menyederhanakan penyebaran cloud‑native.
Prasyarat
- Java Development Kit: JDK 8+ terpasang.
- Maven: Alat build yang disarankan (atau penanganan JAR manual jika Anda lebih suka).
- Pustaka Aspose OCR: Tambahkan JAR ke classpath proyek Anda.
- GroupDocs.Parser untuk Java: Sertakan melalui Maven (lihat di bawah) atau unduh JAR.
- Pengetahuan Java dasar: Anda harus nyaman dengan stream, penanganan pengecualian, dan koleksi.
Menyiapkan GroupDocs.Parser untuk Java
Pengaturan Maven
Tambahkan repositori dan dependensi ke pom.xml Anda:
<repositories>
<repository>
<id>repository.groupdocs.com</id>
<name>GroupDocs Repository</name>
<url>https://releases.groupdocs.com/parser/java/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.groupdocs</groupId>
<artifactId>groupdocs-parser</artifactId>
<version>25.5</version>
</dependency>
</dependencies>
Unduhan Langsung
Jika Anda lebih memilih tidak menggunakan Maven, dapatkan JAR terbaru dari GroupDocs Releases.
Akuisisi Lisensi
Lisensi yang valid membuka semua fitur untuk Aspose OCR dan GroupDocs.Parser. Anda dapat memulai dengan percobaan gratis atau membeli lisensi permanen dari situs web vendor.
Inisialisasi dan Pengaturan Dasar
- Setel lisensi untuk Aspose OCR:
KelasLicensememuat file lisensi (license.lic) dari classpath dan mengaktifkan semua fitur OCR.
import com.aspose.ocr.License;
// Initialize and set the Aspose OCR license
License license = new License();
license.setLicense("YOUR_LICENSE_PATH/AsposeOcrLicensePath");
- Inisialisasi GroupDocs.Parser:
Tidak diperlukan kode tambahan untuk parsing dasar; pustaka secara otomatis mendeteksi format output OCR ketika Anda memberikan string yang dikenali.
Cara mengekstrak teks dari gambar java?
Muat aliran gambar, jalankan metode recognizePage dari Aspose.OCR, dan berikan teks yang dihasilkan ke GroupDocs.Parser—semua dalam kurang dari selusin baris Java. Pendekatan langsung ini menghilangkan file menengah dan memberi Anda hasil terstruktur siap untuk dimasukkan ke database atau diindeks mesin pencari.recognizePage memproses gambar yang diberikan dan mengembalikan teks yang dikenali sebagai string.
Fitur: mengenali teks dari aliran gambar
Ikhtisar
Proses ini mengubah InputStream yang masuk menjadi BufferedImage, secara opsional membatasi OCR ke wilayah tertentu, dan memanggil metode recognizePage dari Aspose OCR. String yang dikembalikan kemudian diberikan ke GroupDocs.Parser untuk analisis tata letak.
Penjelasan langkah demi langkah
- Buat instance AsposeOCR:
KelasOcrEngineadalah titik masuk untuk semua tugas pengenalan. Ia mengenkapsulasi model bahasa, filter pra-pemrosesan, dan pengaturan output.
import com.aspose.ocr.AsposeOCR;
AsposeOCR api = new AsposeOCR();
- Baca aliran gambar ke dalam BufferedImage:
BufferedImageadalah kelas Java yang menyimpan gambar dalam memori dengan data piksel yang dapat diakses.ImageIO.readmendekode aliran byte menjadi gambar raster yang dapat dianalisis oleh mesin OCR. MenggunakanBufferedImagejuga memungkinkan Anda memotong atau memutar gambar sebelum pengenalan.
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
BufferedImage image = ImageIO.read(imageStream);
- Konfigurasi pengaturan pengenalan (pemilihan area opsional):
Anda dapat membatasi OCR ke sebuah persegi panjang (objekRectangle) untuk mempercepat pemrosesan dan mengurangi false positive ketika Anda mengetahui wilayah yang diminati (mis., MRZ paspor).
import com.aspose.ocr.RecognitionSettings;
RecognitionSettings settings = new RecognitionSettings();
// Example: limit OCR to a specific rectangle
if (options != null && options.getRectangle() != null) {
ArrayList<Rectangle> areas = new ArrayList<>();
areas.add(new Rectangle(
(int) options.getRectangle().getLeft(),
(int) options.getRectangle().getTop(),
(int) options.getRectangle().getSize().getWidth(),
(int) options.getRectangle().getSize().getHeight()));
settings.setRecognitionAreas(areas);
}
- Jalankan pengenalan dan tangani peringatan:
PemanggilanrecognizePagemengembalikanRecognitionResultyang berisi teks yang diekstrak dan peringatan diagnostik apa pun (mis., segmen dengan kepercayaan rendah). Periksaresult.getWarnings()untuk mencatat potensi masalah kualitas.
import com.aspose.ocr.RecognitionResult;
RecognitionResult result = api.RecognizePage(image, settings);
if (options != null && options.getHandler() != null) {
options.getHandler().onWarnings(pageIndex, result.warnings);
}
return result.recognitionText;
Fitur: mengenali area teks dari aliran gambar
Ikhtisar
Ketika Anda memerlukan setiap blok teks secara terpisah—seperti bidang individual pada formulir—aktifkan deteksi area. Mesin OCR kemudian mengembalikan daftar kotak pembatas beserta konten teksnya, yang dapat dipetakan oleh GroupDocs.Parser ke model terstruktur.
Penjelasan langkah demi langkah
- Aktifkan deteksi area:
PengaturanrecognitionSettings.setDetectAreas(true)memberi instruksi pada mesin untuk mengembalikan koordinat persegi panjang untuk setiap potongan teks yang terdeteksi.
RecognitionSettings settings = new RecognitionSettings();
settings.setDetectAreas(true);
(Opsional) Tentukan wilayah spesifik – gunakan kembali logika persegi panjang dari bagian sebelumnya jika Anda hanya peduli pada bagian tertentu gambar.
Jalankan OCR dan kumpulkan informasi area:
Hasilnya mencakup koleksi objekTextArea, masing-masing menyediakangetRectangle()dangetText(). Anda dapat mengiterasi koleksi ini untuk mengisi DTO atau payload JSON.
import java.awt.Rectangle;
import java.util.ArrayList;
ArrayList<PageTextArea> areas = new ArrayList<>();
for (int i = 0; i < result.recognitionAreasRectangles.size(); i++) {
Rectangle rect = result.recognitionAreasRectangles.get(i);
String text = result.recognitionText;
areas.add(new PageTextArea(
text,
new Page(pageIndex, pageSize),
new Rectangle(
new Point(rect.getX(), rect.getY()),
new Size(rect.getWidth(), rect.getHeight()))));
}
return areas;
Aplikasi Praktis
- Sistem manajemen dokumen: Mengindeks PDF yang dipindai sehingga pengguna dapat mencari teks lengkap tanpa membuka pemindaian asli.
- Entri data otomatis: Mengambil detail baris dari struk foto, faktur, atau label pengiriman.
- Digitalisasi konten: Mengonversi manual cetak menjadi e‑book yang dapat dicari, mempertahankan tabel dan judul.
- Pemantauan kepatuhan: Memindai formulir regulasi dan secara otomatis menandai bidang yang hilang atau tidak sesuai.
Pertimbangan Kinerja
- Pemrosesan batch: Kelompokkan hingga 20 gambar per thread JVM untuk mengamortisasi overhead pemuatan model OCR.
- Kualitas gambar: Pemindaian pada 300 dpi atau lebih tinggi meningkatkan akurasi pengenalan hingga 15 % dibandingkan gambar 150 dpi.
- Manajemen memori: Panggil
bufferedImage.flush()setelah setiap proses OCR dan gunakan kembali instanceOcrEngineyang sama untuk menjaga model native tetap di memori.
Masalah Umum & Pemecahan Masalah
| Gejala | Penyebab kemungkinan | Solusi |
|---|---|---|
| Karakter kacau | Gambar resolusi rendah | Gunakan pemindaian ≥300 dpi; terapkan penajaman gambar sebelum OCR |
| Tidak ada teks yang dikembalikan | Ruang warna tidak didukung (CMYK) | Konversi gambar ke RGB dengan BufferedImage.TYPE_INT_RGB |
| Kesalahan out‑of‑memory | Gambar sangat besar (mis., >10 MP) | Proses gambar dalam ubin atau tingkatkan heap JVM (-Xmx4g) |
Pertanyaan yang Sering Diajukan
Q: Bagaimana cara menginstal Aspose OCR di proyek Maven saya?
A: Tambahkan dependensi Aspose OCR dari repositori Maven Aspose ke pom.xml Anda dan jalankan mvn clean install. JAR akan diselesaikan secara otomatis.
Q: Bisakah saya mengekstrak teks dari PDF multi‑halaman?
A: Ya. Konversi setiap halaman PDF menjadi gambar (misalnya, dengan Aspose.PDF), kemudian berikan setiap aliran gambar ke metode OCR yang dijelaskan di atas.
Q: Apakah pendekatan ini bekerja dengan teks tulisan tangan?
A: Aspose OCR dioptimalkan untuk karakter cetak. Untuk tulisan tangan, pertimbangkan layanan pengenalan tulisan tangan khusus seperti Azure Computer Vision atau Google Cloud Vision.
Q: Apakah lisensi diperlukan untuk penggunaan produksi?
A: Lisensi percobaan cukup untuk evaluasi, tetapi lisensi penuh menghilangkan watermark, mengangkat batas penggunaan, dan menyediakan dukungan prioritas untuk penyebaran komersial.
Q: Bagaimana saya dapat meningkatkan akurasi untuk bahasa tertentu?
A: Atur bahasa pada objek RecognitionSettings (mis., settings.setLanguage(Language.Spanish);). Ini mempersempit set karakter dan kamus, meningkatkan skor kepercayaan.
Terakhir Diperbarui: 2026-08-26
Diuji Dengan: Aspose.OCR 23.12, GroupDocs.Parser 25.5
Penulis: Aspose