Java में छवि से टेक्स्ट निकालने का तरीका Aspose.OCR और GroupDocs.Parser का उपयोग करके
आधुनिक Java अनुप्रयोगों में, दस्तावेज़ की तस्वीर को खोज योग्य, संपादन योग्य टेक्स्ट में बदलना स्वचालन, अनुपालन और विश्लेषण के लिए एक मुख्य आवश्यकता है। How to extract text from image java वही प्रश्न है जिसका उत्तर यह गाइड देता है। आप सीखेंगे कि Aspose.OCR की उच्च‑सटीकता ऑप्टिकल कैरेक्टर रिकग्निशन को GroupDocs.Parser की शक्तिशाली लेआउट‑अवेयर पार्सिंग के साथ कैसे जोड़ा जाए, साथ ही स्ट्रीम्स को संभालते हुए ताकि समाधान वेब सेवाओं, बैच जॉब्स और डेस्कटॉप टूल्स में फिट हो सके।
त्वरित उत्तर
- OCR को कौनसी लाइब्रेरी संभालती है? Aspose.OCR प्रिंटेड टेक्स्ट के लिए उद्योग‑अग्रणी सटीकता प्रदान करती है।
- OCR आउटपुट को कौनसा घटक पार्स करता है? GroupDocs.Parser कच्चे स्ट्रिंग्स को संरचित तालिकाओं, फ़ॉर्मों और पैराग्राफ़ में बदलता है।
- न्यूनतम Java संस्करण? JDK 8 या उससे नया।
- उत्पादन के लिए लाइसेंस चाहिए? मूल्यांकन के लिए ट्रायल काम करता है; पूर्ण लाइसेंस वाटरमार्क हटाता है और सभी फीचर्स अनलॉक करता है।
- क्या मैं सीधे इमेज स्ट्रीम प्रोसेस कर सकता हूँ? हाँ—दोनों API
InputStreamस्वीकार करते हैं, जो HTTP अपलोड्स के लिए उपयुक्त है।
“छवि से टेक्स्ट निकालना” क्या है?
छवि से टेक्स्ट निकालना का अर्थ है दृश्य अक्षरों—जैसे स्कैन किया गया पृष्ठ या रसीद की फोटो—को साधारण Unicode स्ट्रिंग्स में बदलना, जिन्हें आपका कोड खोज, इंडेक्स या रूपांतरण कर सके। OCR इंजन पिक्सेल पैटर्न का विश्लेषण करते हैं, ग्लिफ़ आकार पहचानते हैं, और टेक्स्टुअल प्रतिनिधित्व आउटपुट करते हैं।
Aspose.OCR को GroupDocs.Parser के साथ क्यों जोड़ें?
Aspose.OCR को GroupDocs.Parser के साथ जोड़ने से आपको उच्च‑गुणवत्ता वाली कैरेक्टर पहचान और शक्तिशाली लेआउट विश्लेषण दोनों मिलते हैं। Aspose.OCR छवियों से कच्चा टेक्स्ट निकालता है, जबकि GroupDocs.Parser उस टेक्स्ट को व्याख्या करके तालिकाएँ, फ़ॉर्म और मल्टी‑कॉलम संरचनाओं की पहचान करता है, और डेटा को एक संरचित फ़ॉर्मेट में लौटाता है जो आगे की प्रोसेसिंग के लिए तैयार है।
- सटीकता: Aspose.OCR उद्योग‑अग्रणी पहचान दरें प्रदान करता है।
- लचीलापन: GroupDocs.Parser तालिकाएँ, फ़ॉर्म फ़ील्ड और मल्टी‑कॉलम लेआउट का पता लगा सकता है, डेटा को JSON या Java ऑब्जेक्ट्स में लौटाता है।
- स्ट्रीम‑फ्रेंडली: दोनों लाइब्रेरी
InputStreamसे सीधे पढ़ती हैं, अस्थायी फ़ाइलों को हटाती हैं और क्लाउड‑नेटिव डिप्लॉयमेंट को सरल बनाती हैं।
आवश्यकताएँ
- Java Development Kit: JDK 8+ स्थापित है।
- Maven: पसंदीदा बिल्ड टूल (या यदि आप चाहें तो मैन्युअल JAR हैंडलिंग)।
- Aspose OCR लाइब्रेरी: JAR को अपने प्रोजेक्ट क्लासपाथ में जोड़ें।
- GroupDocs.Parser for Java: Maven के माध्यम से शामिल करें (नीचे देखें) या JAR डाउनलोड करें।
- बुनियादी Java ज्ञान: आपको स्ट्रीम्स, एक्सेप्शन हैंडलिंग और कलेक्शन्स में सहज होना चाहिए।
GroupDocs.Parser को Java के लिए सेटअप करना
Maven सेटअप
अपने pom.xml में रिपॉजिटरी और डिपेंडेंसी जोड़ें:
<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>
सीधे डाउनलोड
यदि आप Maven का उपयोग नहीं करना चाहते हैं, तो नवीनतम JAR GroupDocs Releases से प्राप्त करें।
लाइसेंस प्राप्ति
एक वैध लाइसेंस Aspose OCR और GroupDocs.Parser दोनों के लिए पूर्ण फीचर सेट अनलॉक करता है। आप मुफ्त ट्रायल से शुरू कर सकते हैं या विक्रेता की वेबसाइटों से स्थायी लाइसेंस खरीद सकते हैं।
बुनियादी आरंभिककरण और सेटअप
- Aspose OCR के लिए लाइसेंस सेट करें:
Licenseक्लास क्लासपाथ से लाइसेंस फ़ाइल (license.lic) लोड करती है और सभी OCR फीचर्स को सक्रिय करती है।
import com.aspose.ocr.License;
// Initialize and set the Aspose OCR license
License license = new License();
license.setLicense("YOUR_LICENSE_PATH/AsposeOcrLicensePath");
- GroupDocs.Parser को इनिशियलाइज़ करें:
बुनियादी पार्सिंग के लिए अतिरिक्त कोड की आवश्यकता नहीं है; लाइब्रेरी OCR आउटपुट फ़ॉर्मेट को स्वचालित रूप से पहचान लेती है जब आप पहचाने गए स्ट्रिंग को पास करते हैं।
Java में छवि से टेक्स्ट कैसे निकालें?
एक इमेज स्ट्रीम लोड करें, Aspose.OCR की recognizePage मेथड चलाएँ, और परिणामस्वरूप टेक्स्ट को GroupDocs.Parser में फीड करें—सभी यह Java की एक दर्जन से कम लाइनों में। यह सीधा तरीका मध्यवर्ती फ़ाइलों को हटाता है और आपको संरचित परिणाम देता है जो डेटाबेस इन्सर्शन या सर्च‑इंजन इंडेक्सिंग के लिए तैयार होते हैं।recognizePage प्रदान की गई इमेज को प्रोसेस करता है और पहचाने गए टेक्स्ट को स्ट्रिंग के रूप में लौटाता है।
सुविधा: छवि स्ट्रीम से टेक्स्ट पहचानें
अवलोकन
यह प्रक्रिया इनकमिंग InputStream को BufferedImage में बदलती है, वैकल्पिक रूप से OCR को एक विशिष्ट क्षेत्र तक सीमित करती है, और Aspose OCR की recognizePage मेथड को कॉल करती है। लौटाई गई स्ट्रिंग को फिर लेआउट विश्लेषण के लिए GroupDocs.Parser को सौंपा जाता है।
चरण‑दर‑चरण व्याख्या
- AsposeOCR इंस्टेंस बनाएं:
OcrEngineक्लास सभी पहचान कार्यों के लिए एंट्री पॉइंट है। यह भाषा मॉडल, प्री‑प्रोसेसिंग फ़िल्टर, और आउटपुट सेटिंग्स को समाहित करता है।
import com.aspose.ocr.AsposeOCR;
AsposeOCR api = new AsposeOCR();
- इमेज स्ट्रीम को BufferedImage में पढ़ें:
BufferedImageएक Java क्लास है जो इमेज को मेमोरी में सहेजती है जिसमें पिक्सेल डेटा उपलब्ध होता है।ImageIO.readबाइट स्ट्रीम को रास्टर इमेज में डिकोड करता है जिसे OCR इंजन विश्लेषण कर सकता है।BufferedImageका उपयोग करके आप पहचान से पहले चित्र को क्रॉप या रोटेट भी कर सकते हैं।
import java.awt.image.BufferedImage;
import javax.imageio.ImageIO;
BufferedImage image = ImageIO.read(imageStream);
- पहचान सेटिंग्स कॉन्फ़िगर करें (वैकल्पिक क्षेत्र चयन):
आप OCR को एक आयत (Rectangleऑब्जेक्ट) तक सीमित कर सकते हैं ताकि प्रोसेसिंग तेज़ हो और जब आप रुचि के क्षेत्र को जानते हों (जैसे पासपोर्ट MRZ) तो फॉल्स पॉज़िटिव्स कम हों।
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);
}
- पहचान चलाएँ और चेतावनियों को संभालें:
recognizePageकॉल एकRecognitionResultलौटाता है जिसमें निकाला गया टेक्स्ट और कोई भी डायग्नोस्टिक चेतावनियाँ (जैसे कम कॉन्फिडेंस सेगमेंट) शामिल होती हैं। संभावित गुणवत्ता समस्याओं को लॉग करने के लिएresult.getWarnings()जांचें।
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;
सुविधा: छवि स्ट्रीम से टेक्स्ट क्षेत्रों की पहचान
अवलोकन
जब आपको प्रत्येक टेक्स्ट ब्लॉक अलग‑अलग चाहिए—जैसे फ़ॉर्म पर व्यक्तिगत फ़ील्ड—तो एरिया डिटेक्शन सक्षम करें। OCR इंजन तब बाउंडिंग बॉक्स की सूची उनके टेक्स्ट कंटेंट के साथ लौटाता है, जिसे GroupDocs.Parser एक संरचित मॉडल में मैप कर सकता है।
चरण‑दर‑चरण व्याख्या
- एरिया डिटेक्शन सक्षम करें:
recognitionSettings.setDetectAreas(true)सेट करने से इंजन प्रत्येक पहचाने गए टेक्स्ट स्निपेट के लिए आयताकार कॉर्डिनेट्स लौटाता है।
RecognitionSettings settings = new RecognitionSettings();
settings.setDetectAreas(true);
(वैकल्पिक) विशिष्ट क्षेत्रों को परिभाषित करें – यदि आप केवल इमेज के कुछ हिस्सों में रुचि रखते हैं तो पिछले सेक्शन की आयत लॉजिक को पुनः उपयोग करें।
OCR चलाएँ और एरिया जानकारी एकत्र करें:
परिणाम मेंTextAreaऑब्जेक्ट्स का संग्रह शामिल है, प्रत्येकgetRectangle()औरgetText()प्रदान करता है। आप इस संग्रह पर इटररेट करके DTO या 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;
व्यावहारिक अनुप्रयोग
- डॉक्यूमेंट मैनेजमेंट सिस्टम: स्कैन किए गए PDFs को इंडेक्स करें ताकि उपयोगकर्ता मूल स्कैन खोले बिना पूरे टेक्स्ट को खोज सकें।
- ऑटोमेटेड डेटा एंट्री: फोटो किए गए रसीदों, इनवॉइसेज़ या शिपिंग लेबल्स से लाइन‑आइटम विवरण निकालें।
- कंटेंट डिजिटाइज़ेशन: प्रिंटेड मैनुअल को खोज योग्य e‑books में बदलें, तालिकाएँ और हेडिंग्स को संरक्षित रखते हुए।
- कम्प्लायंस मॉनिटरिंग: नियामक फ़ॉर्म स्कैन करें और स्वचालित रूप से गायब या गलत फ़ील्ड को फ़्लैग करें।
प्रदर्शन विचार
- बैच प्रोसेसिंग: OCR मॉडल लोडिंग ओवरहेड को कम करने के लिए प्रति JVM थ्रेड अधिकतम 20 इमेज समूहित करें।
- इमेज क्वालिटी: 300 dpi या उससे अधिक की स्कैनिंग 150 dpi इमेज की तुलना में पहचान सटीकता को 15 % तक बढ़ा देती है।
- मेमोरी मैनेजमेंट: प्रत्येक OCR पास के बाद
bufferedImage.flush()कॉल करें और उसीOcrEngineइंस्टेंस को पुनः उपयोग करें ताकि नेेटिव मॉडल मेमोरी में बना रहे।
सामान्य समस्याएँ और ट्रबलशूटिंग
| लक्षण | संभावित कारण | समाधान |
|---|---|---|
| गड़बड़ अक्षर | निम्न‑रिज़ॉल्यूशन इमेज | ≥300 dpi की स्कैन उपयोग करें; OCR से पहले इमेज शार्पनिंग लागू करें |
| कोई टेक्स्ट नहीं मिला | असमर्थित कलर स्पेस (CMYK) | BufferedImage.TYPE_INT_RGB के साथ इमेज को RGB में बदलें |
| आउट‑ऑफ़‑मेमोरी त्रुटियाँ | बहुत बड़ी इमेज (जैसे >10 MP) | इमेज को टाइल्स में प्रोसेस करें या JVM हीप बढ़ाएँ (-Xmx4g) |
अक्सर पूछे जाने वाले प्रश्न
प्र: मैं अपने Maven प्रोजेक्ट में Aspose OCR कैसे स्थापित करूँ?
उ: Aspose OCR डिपेंडेंसी को Aspose Maven रिपॉजिटरी से अपने pom.xml में जोड़ें और mvn clean install चलाएँ। JAR स्वचालित रूप से रिजॉल्व हो जाएगा।
प्र: क्या मैं मल्टी‑पेज PDFs से टेक्स्ट निकाल सकता हूँ?
उ: हाँ। प्रत्येक PDF पेज को इमेज में बदलें (उदाहरण के लिए Aspose.PDF के साथ), फिर प्रत्येक इमेज स्ट्रीम को ऊपर वर्णित OCR मेथड में फीड करें।
प्र: क्या यह तरीका हस्तलिखित टेक्स्ट के साथ काम करता है?
उ: Aspose OCR प्रिंटेड कैरेक्टर्स के लिए अनुकूलित है। हस्तलिखित टेक्स्ट के लिए Azure Computer Vision या Google Cloud Vision जैसे समर्पित हस्तलेख पहचान सेवा पर विचार करें।
प्र: उत्पादन उपयोग के लिए लाइसेंस आवश्यक है क्या?
उ: ट्रायल लाइसेंस मूल्यांकन के लिए पर्याप्त है, लेकिन पूर्ण लाइसेंस वाटरमार्क हटाता है, उपयोग सीमा को हटाता है, और व्यावसायिक डिप्लॉयमेंट के लिए प्रायोरिटी सपोर्ट प्रदान करता है।
प्र: किसी विशिष्ट भाषा के लिए सटीकता कैसे बढ़ा सकते हैं?
उ: RecognitionSettings ऑब्जेक्ट पर भाषा सेट करें (जैसे settings.setLanguage(Language.Spanish);)। इससे कैरेक्टर सेट और शब्दकोश सीमित हो जाता है, जिससे कॉन्फिडेंस स्कोर बढ़ते हैं।
Last Updated: 2026-08-26
Tested With: Aspose.OCR 23.12, GroupDocs.Parser 25.5
Author: Aspose