• Android实现OCR扫描识别数字图片之图片扫描识别


    [Android实例] Android实现OCR扫描识别数字图片之图片扫描识别 


    Android可以识别和扫描二维码,但是识别字符串呢?
    google提供了以下解决方案用的是原来HP的相关资料。
    可以吧,这个迁移到Android上。
    工程导入成功是可以正常运行的,我是专门换了个电脑重新验证了下。
    如果有不能运行的问题,应该是其他方面的问题,不然我的截图如何截 啊?
    关于识别汉字,理论上可以识别,但是要是实现,并且很实用要做的东西更多。
    兄弟不才啊,这2个简单的工程,仅仅识别数字,也是我鼓捣了半个多月才获得成果。

    apk有时间再发。

    http://code.google.com/p/tesseract-ocr/












    实现图像识别的主要方法。
                   TessBaseAPI baseApi = new TessBaseAPI();
                    baseApi.init(TESSBASE_PATH, DEFAULT_LANGUAGE);
                    Bitmap mp = BitmapFactory.decodeResource(getResources(),
                                    R.drawable.number1);

                    mp = mp.copy(Bitmap.Config.ARGB_8888, false);
                    baseApi.setImage(mp);

                    String value = baseApi.getUTF8Text();

    需要,实现一个Camera,不停得扫描图像的,当得出扫描结果的时候就通知用户。
    实现了识别数字 的判断,不过也可以识别其他字符,需要做的处理就更多了。
    附件里有2个工程一个是 OcrLib是android lib工程
    一个OcrSearch是个android工程,这2个工程需要都导入eclipse才可以运行起来。
    最后先导入 OcrLib,然后再是 OcrSearch









    回头大家可以实现下,识别简体中文的尝试

    兄弟不是我要分啊,是论坛上传文件大小有限制啊,
    郁闷啊,有不要积分的下载你也可以试试啊。发布到网盘地址大家可以尝试下啊:



    推荐 aiyuaichou
    导入后OcrSearch 有错,  CameraManager里, 我注释掉了

    /*@TargetApi(Build.VERSION_CODES.GINGERBREAD)
            private void open(Camera theCamera) {

                    int numCameras = Camera.getNumberOfCameras();
                    if (numCameras == 0) {
                            Log.w(TAG, "No cameras!");
                            theCamera = null;
                            return;
                    }

                    int index = 0;
                    while (index < numCameras) {
                            Camera.CameraInfo cameraInfo = new Camera.CameraInfo();
                            Camera.getCameraInfo(index, cameraInfo);
                            if (cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_BACK) {
                                    break;
                            }
                            index++;
                    }

                    if (index < numCameras) {
                            Log.i(TAG, "Opening camera #" + index);
                            theCamera = Camera.open(index);
                    } else {
                            Log.i(TAG, "No camera facing back; returning camera #0");
                            theCamera = Camera.open(0);
                    }
            }*/
    获取相机数..? Camera.getNumberOfCameras() 没有这个方法, 我就注释掉了这段
    同样注释掉了
    /*@TargetApi(Build.VERSION_CODES.GINGERBREAD)
            private static void getResult(Activity activity, int cameraId, Camera camera) {
                    Camera.CameraInfo cameraInfo = new Camera.CameraInfo();
                    Camera.getCameraInfo(cameraId, cameraInfo);

                    int degrees = getDisplayRotation(activity);
                    int result;
                    if (cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) {
                            result = (cameraInfo.orientation + degrees) % 360;
                            result = (360 - result) % 360; // compensate the mirror
                    } else { // back-facing
                            result = (cameraInfo.orientation - degrees + 360) % 360;
                    }
                    camera.setDisplayOrientation(result);
            }*/ 
    Camera.CameraInfo  没有这个类, 注释掉上面2段代码就能运行了, 貌似只能截取数字, 最近要做这个

  • 相关阅读:
    scala程序启动时,Could not locate executable nullinwinutils.exe in the Hadoop binaries解决方案
    binlog_format的模式有哪几种?各自的特点是?
    解决IDEA控制台junit不能用Scanner输入问题
    【转】什么是乐观锁,什么是悲观锁
    lyt经典版MySQL基础——流程控制结构
    ambari 2.5.0源码编译安装
    linux(centeros)svn的安装
    机器学习
    算法思想整理
    lucene
  • 原文地址:https://www.cnblogs.com/dayspring/p/3652335.html
Copyright © 2020-2023  润新知