Digital numbers recognition with Opencv + OCR on android

i'm currently developing an android application to recognize digital numbers of an electricity meter. i've done most of the work but i still not getting a good result. 80% of the time i get a false one.

This is an example (i'm testing with a kitchen scale which is very similar to the meter) :

Original photo : 在这里输入图像描述

image after cropping and processing with OpenCV : 在这里输入图像描述

image after OCR (expected result that was obtained after several shots) : 在这里输入图像描述

image after OCR (unexpected result which is obtained often) : 在这里输入图像描述

Method used to process the image with OpenCV :

public Bitmap Bildverarbeitung (Bitmap image){

    Mat tmp = new Mat (image.getWidth(), image.getHeight(), CvType.CV_8UC1);
    Utils.bitmapToMat(image, tmp);
    Imgproc.cvtColor(tmp, tmp, Imgproc.COLOR_RGB2GRAY);
    Imgproc.GaussianBlur(tmp, tmp, new Size(3, 3), 0);
    Imgproc.threshold(tmp, tmp, 0, 255, Imgproc.THRESH_OTSU);
    Utils.matToBitmap(tmp, image);
    return image;
}

I used two trained data but only one works better :

traineddata that works good

traineddata that doesn't work

can anyone help me get better results.. Is there any changes that i can do? or other methods that i can apply ? thanks in advance

链接地址: http://www.djcxy.com/p/79654.html

上一篇: 用于跟踪3D图像上脊的路径的算法

下一篇: 在Android上使用Opencv + OCR进行数字数字识别