Articles of ocr

Android Tesseract OCR 7分段数字

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

在OCR之前检查图像质量

我有android应用程序在文档上执行OCR。 我希望能够在将图像发送到服务器之前对图像进行一些测试。 所以我的问题是,在将图像焦点发送到服务器之前,是否有任何工具/代码可用于测量图像焦点。 我希望能够知道图像是否没有聚焦(不够清晰),以节省服务器端的处理时间而不是发送它。 谢谢大卫

在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吗?

iPhone和/或Android手机有没有好的OCR API?

想要执行以下操作: take picture convert the text in image into encoded text 。 我只是想知道是否有任何公司为iPhone和/或Android手机提供OCR API?

Google Mobile Vision库未下载

我正在尝试将Google Mobile Vision TextRecogniser API实施到我的应用中,以便从给定的图像中读取文本。 当我尝试使用该function时,我收到此错误: W/DynamiteModule: Local module descriptor class for com.google.android.gms.vision.dynamite not found. I/DynamiteModule: Considering local module com.google.android.gms.vision.dynamite:0 and remote module com.google.android.gms.vision.dynamite:801 I/DynamiteModule: Selected remote version of com.google.android.gms.vision.dynamite, version >= 801 W/System: ClassLoader referenced unknown path: /data/user_de/0/com.google.android.gms/app_chimera/m/00000005/n/arm64-v8a D/ApplicationLoaders: ignored Vulkan layer search path /data/app/com.google.android.gms-1/lib/arm64:/system/fake-libs64:/data/app/com.google.android.gms-1/base.apk!/lib/arm64-v8a for namespace 0x7a2e8c60f0 I/Vision: Loading libocr library I/Vision: libocr […]

将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是这里的术语==“直率”)。

Android OCR tesseract:使用Pixa对象的数据显示边界框

我目前在Android上玩OCR。 因此,我用相机预览编写了一个小应用程序,现在我正在从onPreviewFrame方法中提供tessearact工具(tess-two)图像。 现在我想在我的Camera Preview上显示来自OCR的边界矩形。 TessBaseAPI提供返回字符/单词bouding框的方法。 返回对象的types是Pixa,就像在lessonica库中提供的tess-two一样。 所以我的问题是: 我如何获得可用的坐标,我可以用来从TessBaseAPI的getCharacters()或getWords()返回的Pixa对象中绘制我的相机预览上的边界框? BaseAPI中的GetCharacters()和getWords() leptonicas Pixa类 重要: 因为预览仅支持图像格式是YUV N21,并且远离我所读到的tess-API需要ARGB_8888位图我在onPreviewFrame方法中有以下解决方法就在我将位图提供给TessAPI之前:(我也在旋转顺时针旋转90度,因为我在纵向使用相机,但摄像机预览帧是横向的) //byte[] bmpdata <- the image in a byte array (NV21 Imageformat) in onPreviewFrame YuvImage yuvimage = new YuvImage(bmpdata,ImageFormat.NV21,width,height,null); ByteArrayOutputStream outStream = new ByteArrayOutputStream(); Rect rect = new Rect(0, 0, width, height); yuvimage.compressToJpeg(rect, 100, outStream); Bitmap bmp = BitmapFactory.decodeByteArray(outStream.toByteArray(),0,outStream.size()); Matrix mtx = […]