2017-09-03 2 views
0

Ich benutze derzeit Tesseract, um Quittungen zu scannen. Die Qualität war nicht gut, also lese ich diesen Artikel, wie man es verbessert: https://github.com/tesseract-ocr/tesseract/wiki/ImproveQuality#noise-removal. Ich habe Größenanpassung, Schräglagenkorrektur (Ausrichtung) und Gaußsches Weichzeichnen implementiert. Aber keiner von ihnen scheint einen positiven Effekt auf die Genauigkeit der OCR zu haben, außer der Entzerrung. Hier ist mein Code für Größenanpassung und Gaußsche Unschärfe. Mache ich etwas falsch? Wenn nicht, was kann ich noch tun, um zu helfen?Verbesserung der Tesseract-OCR-Qualität schlägt fehl

Code:

+(UIImage *) prepareImage: (UIImage *)image{ 

    //converts UIImage to Mat format 
    Mat im = cvMatWithImage(image); 

    //grayscale image 
    Mat gray; 
    cvtColor(im, gray, CV_BGR2GRAY); 

    //deskews text 
    //did not provide code because I know it works 
    Mat preprocessed = preprocess2(gray); 
    double skew = hough_transform(preprocessed, im); 
    Mat rotated = rot(im,skew* CV_PI/180); 

    //resize image 
    Mat scaledImage = scaleImage(rotated, 2); 

    //Guassian Blur 
    GaussianBlur(scaledImage, scaledImage, cv::Size(1, 1), 0, 0); 

    return UIImageFromCVMat(scaledImage); 
} 

// Organization -> Resizing 

Mat scaleImage(Mat mat, double factor){ 
    Mat resizedMat; 
    double width = mat.cols; 
    double height = mat.rows; 
    double aspectRatio = width/height; 
    resize(mat, resizedMat, cv::Size(width*factor*aspectRatio, height*factor*aspectRatio)); 
    return resizedMat; 
} 

Receipt:

enter image description here

+2

vielleicht [dieser Link] (http://www.danvk.org/2015/01/11/training-an-ocropus-ocr-model.html) wird hilfreich sein – sturkmen

Antwort

1

Wenn Sie die Tesseract Dokumentation lesen Sie, dass Tesserakts Motor in einer einzigen Zeile in einem Quadrat funktioniert am besten mit Texten sehen. Wenn Sie das gesamte Belegbild übergeben, verringert sich die Genauigkeit des Motors. Sie müssen das neue iOS-Framework CITextFeature verwenden, um Texte in Ihrem Beleg in mehreren Bildblöcken zu erkennen. Dann können nur Sie diese Bilder zur Bearbeitung an tessearact übergeben.