我使用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 –