我使用QT的Tesseract OCR C++库使用此代码不准确的Tesseract OCR数据C++
const char* lang = "eng";
QString filename = "D:/image.png";
tesseract::TessBaseAPI tess;
tess.Init(NULL, lang, tesseract::OEM_DEFAULT);
tess.SetPageSegMode(tesseract::PSM_AUTO);
FILE* fin = fopen(filename.toStdString().c_str(), "rb");
if (fin == NULL)
{
std::cout << "Cannot open " << filename.toStdString().c_str() << std::endl;
return;
}
fclose(fin);
STRING text;
if (tess.ProcessPages(filename.toStdString().c_str(), NULL, 0, &text))
{
ui->plainTextEdit->setPlainText(QString::fromUtf8(text.string()));
//show result in plainttext qt gui
}
把数据不够准确的获得从一个PNG图像 文本在表中的数据,它给了我奇怪的字符,当我使用在线OCR网站将我的图像转换为文本(相同的图像),它以100%的准确性做到了,所以它给了我这个错误的文字是这个问题与图书馆?或我的代码?或者如果有更好的免费图书馆,我可以用它来更准确?
我从PDF图像我用ghost脚本以优良的品质获得图像,从而使OCR库应该得到我正确的数据
OCR的不准确性并不取决于Qt,这取决于进行计算的类,所以我看到Qt标记无关紧要。 – eyllanesc
你在处理你的页面之前是否尝试进行任何预处理?如果你看他们的论坛,有几位用户提到你应该用黑白图像(白色背景上的黑色字体)尝试它,你的文本周围有很多模糊的东西,你应该尝试预处理它,在线OCR最有可能的是自动编辑图像并删除这些图像。 – Eddge
是的我使用Ghostscript从这个属性获取PDF文件的图像-dFirstPage = 1 -dLastPage = 1 -dBATCH -dNOPAUSE -sDEVICE = pnggray -r300 -dUseCropBox –