【问题标题】:Improving Tesseract OCR Quality Fails提高 Tesseract OCR 质量失败
【发布时间】:2018-02-11 15:47:52
【问题描述】:

我目前正在使用 tesseract 扫描收据。质量不好,所以我读了这篇关于如何改进它的文章:https://github.com/tesseract-ocr/tesseract/wiki/ImproveQuality#noise-removal。我实现了调整大小、纠偏(对齐)和高斯模糊。但除了纠偏之外,它们似乎都没有对 OCR 的准确性产生积极影响。这是我调整大小和高斯模糊的代码。我做错什么了吗?如果没有,我还能做些什么来提供帮助?

代码:

+(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;
}

收据:

【问题讨论】:

标签: ios objective-c opencv resize tesseract


【解决方案1】:

如果您阅读 Tesseract 文档,您会发现 tesseract 引擎最适合处理正方形中单行中的文本。将整个收据图像传递给它会降低引擎的准确性。您需要做的是使用新的 iOS 框架 CIT​​extFeature 将收据中的文本检测为多个图像块。然后只有您可以将这些图像传递给 tesseract 进行处理。

【讨论】:

    猜你喜欢
    • 2016-11-14
    • 1970-01-01
    • 2015-02-19
    • 1970-01-01
    • 2018-08-09
    • 2014-12-21
    • 1970-01-01
    • 2021-06-30
    • 2016-06-02
    相关资源
    最近更新 更多