首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >tess-两个OCR无法正确解码

tess-两个OCR无法正确解码
EN

Stack Overflow用户
提问于 2015-05-14 23:07:51
回答 1查看 643关注 0票数 0

我按照教程来安装Tesseract,特别是tess-two和eyes-两个安装和我的Android应用程序的一部分。

它可以运行,但从baseApi.getUTF8Text();返回的OCR文本完全是胡言乱语。

代码语言:javascript
运行
复制
BitmapFactory.Options options = new BitmapFactory.Options();
        options.inSampleSize = 4;
        Bitmap bmp = BitmapFactory.decodeFile(path , options);
        receipt.setImageBitmap(bmp);

        try {
            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 = bmp.getWidth();
                int h = bmp.getHeight();
                Matrix matrix = new Matrix();
                matrix.preRotate(rotate);
                bmp = Bitmap.createBitmap(bmp, 0, 0, w, h, matrix, false);
            }

            bmp = bmp.copy(Bitmap.Config.ARGB_8888, true);


            TessBaseAPI baseApi = new TessBaseAPI();
            baseApi.init(DATA_PATH , "eng");
            baseApi.setImage(bmp);
            String OCRText = baseApi.getUTF8Text();
            baseApi.end();

            Log.i("OCR Text", "rotate  " + rotate);
            Log.i("OCR Text", "OCR   ");
            Log.i("OCR Text",  OCRText);
            Log.i("OCR Text", "=======================================================================================");

拍摄包含OCR字符的支票将返回

代码语言:javascript
运行
复制
05-14 11:01:59.131: I/OCR Text(18199): rotate  90
05-14 11:01:59.131: I/OCR Text(18199): OCR   
05-14 11:01:59.131: I/OCR Text(18199): 4— ‘ ‘
05-14 11:01:59.131: I/OCR Text(18199): \Dxfi ‘
05-14 11:01:59.131: I/OCR Text(18199): I W man"! no Accounv
05-14 11:01:59.131: I/OCR Text(18199): 1’
05-14 11:01:59.131: I/OCR Text(18199): my... «unblm m. mm.
05-14 11:01:59.131: I/OCR Text(18199): :~A
05-14 11:01:59.131: I/OCR Text(18199): «Ln.
05-14 11:01:59.131: I/OCR Text(18199): ‘ “w “IN. N I “H‘M‘
05-14 11:01:59.131: I/OCR Text(18199): mmnwnmw- .; k. '
05-14 11:01:59.131: I/OCR Text(18199): Wilt-run”. uni” nl
05-14 11:01:59.131: I/OCR Text(18199): mam. I
05-14 11:01:59.131: I/OCR Text(18199): =======================================================================================

对如何清理和纠正OCR识别有什么建议吗?使用的设备是三星Galaxy 7“。

EN

回答 1

Stack Overflow用户

发布于 2015-05-15 01:23:12

您可以使用类似于

代码语言:javascript
运行
复制
OCRText = OCRText.replaceAll("[^a-zA-Z0-9]+", " ");
OCRText = OCRText.trim();

它基于我在这里找到的一个Tesseract实现:SimpleAndroidOCRActivity.java

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30240780

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档