Add trace messages

This commit is contained in:
Gres 2020-04-23 22:06:08 +03:00
parent 3d50c17b81
commit 6c70b0f21a
6 changed files with 29 additions and 2 deletions

View File

@ -47,8 +47,10 @@ void Corrector::correct(const TaskPtr &task)
task->corrected = task->recognized;
if (!settings_.userSubstitutions.empty())
if (!settings_.userSubstitutions.empty()) {
task->corrected = substituteUser(task->recognized, task->sourceLanguage);
LTRACE() << "Corrected with user data";
}
if (task->useHunspell) {
emit correctAuto(task);

View File

@ -13,9 +13,11 @@ void CorrectorWorker::handle(const TaskPtr &task)
SOFT_ASSERT(task->isValid(), return );
SOFT_ASSERT(!hunspellDir_.isEmpty(), return );
LTRACE() << "Start hunspell correction" << task->sourceLanguage;
auto result = task;
if (!bundles_.count(task->sourceLanguage)) {
LTRACE() << "Create hunspell engine" << task->sourceLanguage;
auto engine =
std::make_unique<HunspellCorrector>(task->sourceLanguage, hunspellDir_);
@ -27,6 +29,7 @@ void CorrectorWorker::handle(const TaskPtr &task)
}
bundles_.emplace(task->sourceLanguage, Bundle{std::move(engine), 0});
LTRACE() << "Added hunspell engine" << task->sourceLanguage;
}
auto &bundle = bundles_[task->sourceLanguage];
@ -49,6 +52,7 @@ void CorrectorWorker::reset(const QString &hunspellDir)
hunspellDir_ = hunspellDir;
bundles_.clear();
LTRACE() << "Cleared hunspell engines";
}
void CorrectorWorker::removeUnused(Generation current)
@ -60,7 +64,9 @@ void CorrectorWorker::removeUnused(Generation current)
if (it->second.usesLeft >= 0) {
++it;
} else {
const auto name = it->first;
it = bundles_.erase(it);
LTRACE() << "Removed unused hunspell engine" << name;
}
}
}

View File

@ -93,10 +93,12 @@ void HunspellCorrector::init(const QString &path)
engine_ =
std::make_unique<Hunspell>(qPrintable(aff), qPrintable(dics.first()));
LTRACE() << "Created hunspell instance";
dics.pop_front();
if (!dics.isEmpty()) {
for (const auto &dic : dics) engine_->add_dic(qPrintable(dic));
LTRACE() << "Loaded hunspell dicts" << dics;
}
}

View File

@ -11,9 +11,12 @@ void RecognizeWorker::handle(const TaskPtr &task)
SOFT_ASSERT(task->isValid(), return );
SOFT_ASSERT(!tessdataPath_.isEmpty(), return );
LTRACE() << "Start recognize" << task->captured;
auto result = task;
if (!engines_.count(task->sourceLanguage)) {
LTRACE() << "Create OCR engine" << task->sourceLanguage;
auto engine =
std::make_unique<Tesseract>(task->sourceLanguage, tessdataPath_);
@ -24,6 +27,7 @@ void RecognizeWorker::handle(const TaskPtr &task)
}
engines_.emplace(task->sourceLanguage, std::move(engine));
LTRACE() << "Added OCR engine" << task->sourceLanguage;
}
auto &engine = engines_[task->sourceLanguage];
@ -46,6 +50,7 @@ void RecognizeWorker::reset(const QString &tessdataPath)
tessdataPath_ = tessdataPath;
engines_.clear();
LTRACE() << "Cleared OCR engines";
}
void RecognizeWorker::removeUnused(Generation current)
@ -58,6 +63,7 @@ void RecognizeWorker::removeUnused(Generation current)
continue;
}
engines_.erase(it->first);
LTRACE() << "Removed unused OCR engine" << it->first;
it = lastGenerations_.erase(it);
}
}

View File

@ -98,18 +98,22 @@ static Pix *prepareImage(const QImage &image)
auto gray = pixConvertRGBToGray(pix, 0.0, 0.0, 0.0);
SOFT_ASSERT(gray, return nullptr);
pixDestroy(&pix);
LTRACE() << "Removed original Pix";
auto scaleSource = gray;
auto scaled = scaleSource;
if (const auto scale = getScale(scaleSource); scale > 1.0) {
scaled = pixScale(scaleSource, scale, scale);
LTRACE() << "Scaled Pix for OCR" << LARG(scale) << LARG(scaled);
if (!scaled)
scaled = scaleSource;
}
if (scaled != scaleSource)
if (scaled != scaleSource) {
pixDestroy(&scaleSource);
LTRACE() << "Removed unscaled Pix";
}
return scaled;
}
@ -184,13 +188,17 @@ QString Tesseract::recognize(const QPixmap &source)
Pix *image = prepareImage(source.toImage());
SOFT_ASSERT(image != NULL, return {});
LTRACE() << "Preprocessed Pix for OCR";
engine_->SetImage(image);
char *outText = engine_->GetUTF8Text();
LTRACE() << "Received recognized text";
engine_->Clear();
cleanupImage(&image);
LTRACE() << "Cleared preprocessed Pix";
QString result = QString(outText).trimmed();
delete[] outText;
LTRACE() << "Cleared recognized text buffer";
if (result.isEmpty())
error_ = QObject::tr("Failed to recognize text or no text selected");

View File

@ -103,6 +103,7 @@ void Translator::translate(const TaskPtr &task)
SOFT_ASSERT(task, return );
if (task->corrected.isEmpty()) {
LTRACE() << "Corrected text is empty. Skipping translation";
manager_.translated(task);
return;
}
@ -177,6 +178,7 @@ void Translator::createPage(const QString &scriptName,
SOFT_ASSERT(log->document(), return )
log->document()->setMaximumBlockCount(1000);
LTRACE() << "Created page" << LARG(scriptName);
}
void Translator::showDebugView()
@ -279,6 +281,7 @@ void Translator::processQueue()
pages_[translator]->start(task);
task->translators.removeOne(translator);
idlePages.erase(translator);
LTRACE() << "Started translation at" << translator << task;
break;
}
}