Add trace messages
This commit is contained in:
parent
3d50c17b81
commit
6c70b0f21a
@ -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);
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
@ -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");
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user