Articles of tesseract

使用Tesseract的Android OCR App

我正在按照本网站提到的教程: http://gaut.am/making-an-ocr–android-app-using-tesseract/ 首先我从github导入了Tess-Two : https : //github.com/rmtheis/tess-two 并将其链接到我的项目https://github.com/GautamGupta/Simple-Android-OCR 该应用程序编译并运行正常。 但是当我点击图片后点击保存它会崩溃。 这是源主要活动: public class SimpleAndroidOCRActivity extends Activity { public static final String PACKAGE_NAME = “com.datumdroid.android.ocr.simple”; public static final String DATA_PATH = Environment .getExternalStorageDirectory().toString() + “/SimpleAndroidOCR/”; // You should have the trained data file in assets folder // You can get them at: // http://code.google.com/p/tesseract-ocr/downloads/list public static […]

tesseract v3.03使用可搜索的文本示例呈现PDF

从tesseract v3.03的发行说明中 , tesseract现在支持使用可搜索文本的渲染PDF输出,但我不知道如何在我的代码中使用此function。 目前我使用tess-two为我的Android应用程序,然后我只是想知道这个function可以用于Android吗? 如果你能给我一个使用tesseract api来渲染pdf的例子,那将会很棒,然后我将尝试为tess-two库移植缺少的函数。 提前致谢。 P / s:我可以看到可以处理render pdf输出的pdfrenderer文件,但我不知道如何将它应用于base api。 更新 :这是我的尝试: tesseract::TessResultRenderer* renderer = new tesseract::TessPDFRenderer(nat->api.GetDatapath()); __android_log_print(ANDROID_LOG_ERROR, “Test_tesseract”, “data path = %s”, nat->api.GetDatapath()); if (!nat->api.ProcessPages(c_file_name, NULL, 0, renderer)) { __android_log_print(ANDROID_LOG_ERROR, “Test_tesseract”, “process page failed”); delete renderer; return; } FILE* fout = fopen(c_pdf_file_name, “wb”); if (fout == NULL) { __android_log_print(ANDROID_LOG_ERROR, “Test_tesseract”, “Cannot […]

将位图中特定颜色以外的所有颜色转换为白色

我正在使用tess-two库,我希望将我图像中除黑色之外的所有颜色转换为白色(黑色将是文本)。 从而使tess-two更容易阅读文本。 我尝试了各种方法但是他们花了太多时间逐像素地转换。 有没有办法使用canvas或任何能够更快地提供结果的东西来实现这一目标。 UPDATE 该算法提出的另一个问题是打印机不能使用与Android中相同的BLACK和White打印。 因此算法将整个图像转换为白色。 我目前使用的逐像素方法。 binarizedImage = convertToMutable(cropped);// the bitmap is made mutable int width = binarizedImage.getWidth(); int height = binarizedImage.getHeight(); int[] pixels = new int[width * height]; binarizedImage.getPixels(pixels, 0, width, 0, 0, width, height); for(int i=0;i<binarizedImage.getWidth();i++) { for(int c=0;c<binarizedImage.getHeight();c++) { int pixel = binarizedImage.getPixel(i, c); if(!(pixel == Color.BLACK || pixel == […]

Android Tesseract OCR 7分段数字

我一直在使用tesseract到ocr数字实现Android OCR工具。 到目前为止,它使用普通数字字体提供相当高的准确度。 然而,当涉及7段数字(在LCD上find的数字)时,准确性是可怕的。 我试过裁剪我的图像,白名单0到9,还有一些image processing无济于事。 关于如何提高准确性的任何想法? 或者也许一些关于训练tesseract的特定7段数字的技巧肯定会帮助我很多。 提前致谢。

在Android上使用OpenCV提高Tesseract性能

我正在使用实时OCR处理Android应用程序。 我使用OpenCV和Tesseract Library。 但即使在我的Galaxy SIII上,性能也很差。 有什么方法可以改善性能吗? 这是我的代码: Mat mGray = new Mat(); capture.retrieve(mGray); Bitmap bmp = Bitmap.createBitmap(mGray.cols(), mGray.rows(), Bitmap.Config.ARGB_8888); tessBaseApi.setImage(bmp); String recognizedText = tessBaseApi.getUTF8Text(); Log.i(“Reg”, recognizedText); 将位图传递给Tesseract API会降低tesseract OCR的速度吗? 在传递给Tesseract API之前,我应该执行哪些预处理?

无法使用language = eng初始化Tesseract API

我正在开发一款需要OCR的Android应用。 我决定使用Tesseract作为API,但我一直在收到此错误: E / Tesseract(原生):无法使用language = eng初始化Tesseract API! 我已将文件”eng.traineddata”复制到该位置。 我使用的是Android Studio 2.1.2(SDK 23) 使用API​​ 22 Android Lollipop 5.1.1在设备上进行测试(阅读关于Marshmallow的权限问题) 这是我正在使用的代码: public void reads(View view) { TextView textView = (TextView) findViewById(R.id.textView); int rotation = 0; try { ExifInterface exifInterface = new ExifInterface(mCurrentPhotoPath); int orientation = exifInterface.getAttributeInt(ExifInterface.TAG_ORIENTATION,ExifInterface.ORIENTATION_NORMAL); switch (orientation){ case ExifInterface.ORIENTATION_ROTATE_90: rotation = 90; break; case ExifInterface.ORIENTATION_ROTATE_180: rotation […]

寻找ANPR / LPR(自动车牌识别/车牌识别)SDK for android

我正在为Android寻找ANPR / LPR(自动车牌识别/车牌识别)SDK ..是否有适用于Android的SDK? 我想为Android开发车牌识别软件,用户可以使用手机摄像头扫描盘子并识别号码。 我试过像Tesseract这样的光学字符识别(OCR)引擎,但准确性太差了。 我有什么方法可以使用OCR吗?

如何在Eclipse中为Android开发配置Tesseract?

我从6个月开始研究android。 所以我对Android开发有基本的了解。 现在我想使用Tesseract开发一个OCR Android应用程序。 为此我已经下载了android-ndk-r6b,来自Tesseract的tess-two,适用于Windows的Cygwin以及在Eclipse中安装的C / C ++开发人员。 我遵循这两个链接: 1.http://www.itwizard.ro/interfacing-cc-libraries-via-jni-example-tesseract-163.html 2.http://gaut.am/making-an-ocr-android-app-using-tesseract/ 但我陷入了困境。 我的意思是我无法将这些东西配置在一起。 任何人都可以建议我如何从一开始就配置Android中的tesseract(一步一步)?

将Tess4J作为Eclipse中的库包含在Java项目中

到目前为止,我有一个空的,干净的Eclipse Java项目。 如何将Tess4J用作我想要开发的Web服务的库,我该怎么办? 甚至可以将它用作Android项目的库吗? (会有很多捷径)我遇到的问题与.tif有关。 Tess4J是本机代码的包装器,因为tesseract–ocr是用C / C ++编写的。 我到目前为止。 但是如何将这个包装器包含到我的项目中? 我已经google了很多,直到我决定放弃tesseract.Net ,因为这个项目被严格维护/记录并且会强迫我使用C#(这没关系),但我没有设法让它工作,所以我不得不默认使用C / C ++(这是不行的);) 我现在有点失落,所以欢迎任何帮助。 问候。 编辑:按照这里提到的步骤(从nguyenq回答) 1:新的Eclipse工作区 2:创建了一个名为lib的新目录 3:将\Tess4J\dist\tess4j.jar , \Tess4J\lib\jna.jar和\Tess4J\lib\jai_imageio.jar到lib (2)中 4:在Eclipse中创建了一个新的Java项目 5:在项目属性中(4)我将.jars从(3)添加到Java构建路径作为库下的外部jar 6:我将dir \tessdata和libtesseract302.dll复制到项目根目录dir \workspace\project\ 7:我创建了一个新类Main并实例化了一个Tesseract1 tesseract = new Tesseract1(); 供测试用 8:我运行应用程序,但抛出exception: Exception in thread “main” java.lang.UnsatisfiedLinkError: Unable to load library ‘libtesseract302’ Module not found EDIT2: 7.1:我创建了一个新类Main并实例化了一个Tesseract tesseract = new […]

无法识别Tesseract中的数字 – android

我希望有人能告诉我为什么我的Tesseract难以识别一些带有数字的图像,如果有什么我可以做的事情。 一切都按照测试工作,因为它只是我需要的数字,我想我可以用英语模式管理,直到我不得不从7分段显示开始。 虽然我对附加的图像有很多麻烦,但我想知道我是否应该开始使用我自己的识别算法,或者我是否可以为Tesseract做自己的数据集然后它会工作,有没有人知道在哪里Tesseract的局限性在于什么? 事情尝试:尝试将psm设置为one_line,one_word,one_char(并切断图片)。 使用one_line和one_word没有重大变化。 使用one_char它确实感觉好一点,但有时候,由于大的间距,它附加了一个额外的数字,然后拧紧它,如果你看附加的图像 然后它导致了04.我自己也试图进行二值化,这导致了更差的识别并且非常耗费资源。 我试图反转图片,这对于tesseract没有任何区别。 我附上了我需要的照片以供处理。 关于图像的解释: 是一个图像,tesseract没有识别的问题,虽然它是为了方便在工作图像周围构建应用程序而言。 是与image_seven匹配的真实生活图像。 但它无法识别这一点。 是我想要识别的另一个图像,是的,我知道它不能被浏览,而且我在测试时做了未提取(想想skrew是这里的术语==“直率”)。