Explicitly set page segmentation mode to auto

This commit is contained in:
Gres 2021-03-21 23:05:32 +03:00
parent efee1088f7
commit 5b591fa476

View File

@ -137,6 +137,7 @@ class Tesseract::Wrapper
using GetUtf8 = char *(*)(TessBaseAPI *);
using ClearApi = void (*)(TessBaseAPI *);
using DeleteUtf8 = void (*)(const char *);
using SetPageMode = void (*)(TessBaseAPI *, int);
public:
explicit Wrapper(const QString &libraryName)
@ -156,6 +157,8 @@ public:
ok &= bool(getUtf8_ = (GetUtf8)lib.resolve("TessBaseAPIGetUTF8Text"));
ok &= bool(clearApi_ = (ClearApi)lib.resolve("TessBaseAPIClear"));
ok &= bool(deleteUtf8_ = (DeleteUtf8)lib.resolve("TessDeleteText"));
ok &= bool(setPageMode_ =
(SetPageMode)lib.resolve("TessBaseAPISetPageSegMode"));
if (!ok) {
LERROR() << "Failed to resolve tesseract functions from" << libraryName;
return;
@ -184,6 +187,9 @@ public:
{
SOFT_ASSERT(handle_, return {});
SOFT_ASSERT(setPageMode_, return {});
setPageMode_(handle_, 3); // PSM_AUTO
SOFT_ASSERT(setImage_, return {});
setImage_(handle_, pix);
LTRACE() << "Set Pix to engine";
@ -216,6 +222,7 @@ private:
GetUtf8 getUtf8_{nullptr};
ClearApi clearApi_{nullptr};
DeleteUtf8 deleteUtf8_{nullptr};
SetPageMode setPageMode_{nullptr};
TessBaseAPI *handle_{nullptr};
};