2011-05-27 15 views
5

से टेक्स्ट निकालें मैं एक ऐसे अनुप्रयोग पर काम कर रहा हूं जिसे जेपीईजी छवि को पाठ में परिवर्तित करने की आवश्यकता है ताकि मैं छवि में लिखे गए पाठ की पहचान कर सकूं। कृपया मुझे ऐसा करने का एक संकेत दें।एंड्रॉइड: छवि

+0

की [एंड्रॉयड ओसीआर?] (Http://stackoverflow.com/questions/1106202/android-ocr) – EboMike

+0

गूगल ने हाल ही इस लक्ष्य को हासिल करने के लिए एक ओसीआर API को रिलीज़ संभव डुप्लिकेट: https://developers.google.com/दृष्टि/टेक्स्ट-ओवरव्यू – Wirling

उत्तर

1

से Making OCR app using Tesseract.

नोट EXTRACT: ये निर्देश Android एसडीके R19 और एंड्रॉयड NDK r7c के लिए कर रहे हैं। 64-बिट उबंटू पर, आपको ia32-libs 32-बिट संगतता लाइब्रेरी इंस्टॉल करने की आवश्यकता हो सकती है। आपको जोड़ा गया उचित पैथ चर भी चाहिए।

स्रोत डाउनलोड करें या git repository क्लोन करें। इस प्रोजेक्ट में एंड्रॉइड पर उपयोग के लिए टेस्सेक्ट, लेप्टनिका और जेपीईजी पुस्तकालयों को संकलित करने के लिए टूल शामिल हैं। इसमें एक ग्रहण एंड्रॉइड लाइब्रेरी प्रोजेक्ट है जो मूल रूप से संकलित टेसेरैक्ट और लेप्टनिका एपीआई तक पहुंचने के लिए जावा एपीआई प्रदान करता है। आपको आंखों की आवश्यकता नहीं है- दो कोड, आप इसके बिना कर सकते हैं।

बिल्ड इस परियोजना इन आदेशों का उपयोग करते (यहाँ, टेस-दो के अंदर निर्देशिका है टेस-दो - टेस-दो परीक्षण के रूप में एक ही स्तर पर एक):

cd <project-directory>/tess-two 
ndk-build 
android update project --path . 
ant release 

अब परियोजना आयात ग्रहण में एक पुस्तकालय के रूप में।

File -> Import -> Existing Projects into workspace -> tess-two directory<code>. Right click the project, Android Tools -> Fix Project Properties. Right click -> Properties -> Android -> Check Is Library 

कॉन्फ़िगर अपनी परियोजना एक पुस्तकालय परियोजना के रूप में टेस-दो परियोजना का उपयोग करने के:

Right click your project name -> Properties -> Android -> Library -> Add, and choose tess-two. 

अब आप लाइब्रेरी का उपयोग कर किसी भी छवि ओसीआर लिए तैयार हैं।

सबसे पहले, हमें तस्वीर स्वयं ही प्राप्त करने की आवश्यकता है। इसके लिए, मुझे यहां छवि को कैप्चर करने के लिए एक सरल कोड मिला। हमारे पास बिटमैप होने के बाद, हमें केवल ओसीआर निष्पादित करने की आवश्यकता है जो अपेक्षाकृत आसान है। की तरह कुछ कर रही द्वारा रोटेशन और छवि प्रकार दूर करने के लिए सुनिश्चित करें:

// _path = path to the image to be OCRed 
ExifInterface exif = new ExifInterface(_path); 
int exifOrientation = exif.getAttributeInt(
     ExifInterface.TAG_ORIENTATION, 
     ExifInterface.ORIENTATION_NORMAL); 

int rotate = 0; 

switch (exifOrientation) { 
case ExifInterface.ORIENTATION_ROTATE_90: 
    rotate = 90; 
break; 
case ExifInterface.ORIENTATION_ROTATE_180: 
    rotate = 180; 
break; 
case ExifInterface.ORIENTATION_ROTATE_270: 
    rotate = 270; 
break; 
} 

if (rotate != 0) { 
    int w = bitmap.getWidth(); 
    int h = bitmap.getHeight(); 

    // Setting pre rotate 
    Matrix mtx = new Matrix(); 
    mtx.preRotate(rotate); 

    // Rotating Bitmap & convert to ARGB_8888, required by tess 
    bitmap = Bitmap.createBitmap(bitmap, 0, 0, w, h, mtx, false); 
} 
bitmap = bitmap.copy(Bitmap.Config.ARGB_8888, true); 

अब हम बिटमैप में छवि है, और हम बस ओसीआर चलाने के लिए TessBaseAPI उपयोग कर सकते हैं:

TessBaseAPI baseApi = new TessBaseAPI(); 
// DATA_PATH = Path to the storage 
// lang = for which the language data exists, usually "eng" 
baseApi.init(DATA_PATH, lang); 
// Eg. baseApi.init("/mnt/sdcard/tesseract/tessdata/eng.traineddata", "eng"); 
baseApi.setImage(bitmap); 
String recognizedText = baseApi.getUTF8Text(); 
baseApi.end(); 
(You can download the language files from [here][2] and put them in a directory on your device – manually or by code) 

अब जब आप वैरिएबल मान्यता प्राप्त टेक्स्ट में ओसीआरएड टेक्स्ट प्राप्त कर चुके हैं, तो आप इसके साथ बहुत कुछ कर सकते हैं - अनुवाद, खोज, कुछ भी! ps। आप वरीयता प्राप्त करके और फिर here से आवश्यक भाषा डेटा फ़ाइल डाउनलोड करके विभिन्न भाषा समर्थन जोड़ सकते हैं। आप उन्हें संपत्ति फ़ोल्डर में भी डाल सकते हैं और उन्हें प्रारंभ में एसडी कार्ड में कॉपी कर सकते हैं।

समस्या निवारण

  • पथ को अद्यतन करने के बारे में - आप कार्य करने के लिए आदेश के लिए अपने पथ चर अद्यतन करने की आवश्यकता है, अन्यथा आप त्रुटि नहीं मिला एक कमांड देखना होगा। एंड्रॉइड एसडीके के लिए, अपने पाथ पर्यावरण चर में एसडीके के टूल्स और प्लेटफॉर्म-टूल्स निर्देशिकाओं का स्थान जोड़ें। एंड्रॉइड एनडीके के लिए, एंड्रॉइड-एनएनडी निर्देशिका को पीएटीएच वैरिएबल में जोड़ने के लिए एक ही प्रक्रिया का उपयोग करें।
  • मेवेन-इज़िंग - जेम्स एल्सी द्वारा post देखें। उन्होंने यह भी उल्लेख किया कि उन्हें बिना किसी समस्या के विंडोज़ पर काम करना पड़ा।
  • आप इस पृष्ठ पर अपनी समस्या को Ctrl + F-ing भी आज़मा सकते हैं, किसी ने शायद ही इसका सामना किया हो और टिप्पणियों में समाधान पोस्ट किया हो।
+0

आपने यह नहीं लिखा - कृपया स्पष्ट रूप से बताएं कि आपने इसे ब्लॉग पोस्ट से कॉपी किया है (जिसके लिए आपने लिंक जोड़ा है) चोरी के रूप में लेने से बचने के लिए। – laalto

+0

इससे पहले मैं तुरंत लिंक पोस्ट करता था लेकिन स्टैक ओवरफ्लो का एक सदस्य था जिसने मुझे किसी भी लिंक का डेटा जवाब देने के लिए कहा था, लिंक काम नहीं करता है। – Confuse

+0

हां। केवल लिंक जवाब पोस्ट न करें। अन्य लोगों की सामग्री को अपने आप के रूप में पोस्ट न करें। – laalto

संबंधित मुद्दे