-1
  1. 我们传递了一个带有文本“Hello World”的单行图像,Tesseract OCR 完美地显示了结果“Hello World”。

  2. 但是当我们传递一个带有多行文本的图像时

你好世界
你好吗

它没有显示任何东西。

这是我们的代码:

#include "stdafx.h"
#include <iostream>
#include <baseapi.h>
#include <allheaders.h>
#include <fstream>

using namespace std;

int _tmain(int argc, _TCHAR* argv[])
{
    tesseract::TessBaseAPI api;

    api.Init("", "eng", tesseract::OEM_DEFAULT);
    api.SetPageSegMode(static_cast<tesseract::PageSegMode>(7));
    api.SetOutputName("out");

    cout<<"File name:";
    char image[256];
    cin>>image;
    PIX   *pixs = pixRead(image);

    STRING text_out;
    api.ProcessPages(image, NULL, 0, &text_out);

    cout<<text_out.string();

    ofstream files;
    files.open("out.txt");
    files << text_out.string()<<endl;
    files.close();

    cin>> image;
    return 0;
}

1行输入

1行输出

2行输入

2行输出

4

1 回答 1

0

页面分割模式 7 将图像视为单个文本行。尝试 3,这是全自动页面分割,但没有 OSD(默认)。

于 2013-03-04T22:40:13.087 回答