diff --git a/CMakeLists.txt b/CMakeLists.txt index 1e718b0..de33d8d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -8,7 +8,7 @@ if (PLUGIN_STANDARD_3DMASC) project( Q3DMASC_PLUGIN ) AddPlugin( NAME ${PROJECT_NAME} ) - set(Q3DMASC_PLUGIN_VERSION "0.12+") + set(Q3DMASC_PLUGIN_VERSION "1.0") include( CMakePolicies NO_POLICY_SCOPE ) diff --git a/confusionmatrix.cpp b/confusionmatrix.cpp index cca7ac6..2f1b2f9 100644 --- a/confusionmatrix.cpp +++ b/confusionmatrix.cpp @@ -32,8 +32,7 @@ QColor getColor(double value, double r1, double g1, double b1) return QColor(r, g, b); } -ConfusionMatrix::ConfusionMatrix(const std::vector &actual, const std::vector &predicted, QWidget *parent, ccMainAppInterface *app) : - QWidget(parent), +ConfusionMatrix::ConfusionMatrix(const std::vector &actual, const std::vector &predicted) : ui(new Ui::ConfusionMatrix) { ui->setupUi(this); @@ -41,10 +40,6 @@ ConfusionMatrix::ConfusionMatrix(const std::vector &actual, const st compute(actual, predicted); - if (app) - { - this->show(); - } this->ui->tableWidget->resizeColumnsToContents(); this->ui->tableWidget->setSizeAdjustPolicy(QAbstractScrollArea::AdjustToContents); QSize tableSize = this->ui->tableWidget->sizeHint(); diff --git a/confusionmatrix.h b/confusionmatrix.h index 1675bea..bd4f363 100644 --- a/confusionmatrix.h +++ b/confusionmatrix.h @@ -25,10 +25,8 @@ public: F1_SCORE = 2 }; - explicit ConfusionMatrix( const std::vector& actual, - const std::vector& predicted, - QWidget *parent = nullptr, - ccMainAppInterface* app = nullptr); + explicit ConfusionMatrix(const std::vector& actual, + const std::vector& predicted); ~ConfusionMatrix() override; void computePrecisionRecallF1Score(cv::Mat& matrix, cv::Mat& precisionRecallF1Score, cv::Mat &vec_TP_FN); diff --git a/q3DMASC.cpp b/q3DMASC.cpp index bf91893..fb6252c 100644 --- a/q3DMASC.cpp +++ b/q3DMASC.cpp @@ -425,7 +425,6 @@ void q3DMASCPlugin::doTrainAction() //compute the core points (if necessary) ccProgressDialog progressDlg(true, m_app->getMainWindow()); progressDlg.setAutoClose(false); - ccLog::Error("Qt::WA_DeleteOnClose " + QString::number(progressDlg.testAttribute(Qt::WA_DeleteOnClose))); if (!corePoints.prepare(&progressDlg)) { m_app->dispToConsole("Failed to compute/prepare the core points!", ccMainAppInterface::ERR_CONSOLE_MESSAGE); diff --git a/q3DMASCClassifier.cpp b/q3DMASCClassifier.cpp index 3fe0041..092da90 100644 --- a/q3DMASCClassifier.cpp +++ b/q3DMASCClassifier.cpp @@ -481,7 +481,12 @@ bool Classifier::evaluate(const Feature::Source::Set& featureSources, metrics.ratio = static_cast(metrics.goodGuess) / metrics.sampleCount; } - train3DMASCDialog.addConfusionMatrixAndSaveTraces(new ConfusionMatrix(actualClass, predictectedClass, nullptr, app)); + ConfusionMatrix* confusionMatrix = new ConfusionMatrix(actualClass, predictectedClass); + train3DMASCDialog.addConfusionMatrixAndSaveTraces(confusionMatrix); + if (app) + { + confusionMatrix->show(); + } //show the Classification_prediction field by default if (outSF) diff --git a/q3DMASCTools.cpp b/q3DMASCTools.cpp index e38f1fa..976bae1 100644 --- a/q3DMASCTools.cpp +++ b/q3DMASCTools.cpp @@ -1231,7 +1231,6 @@ bool Tools::PrepareFeatures(const CorePoints& corePoints, Feature::Set& features ccLog::Print(logMessage); CCCoreLib::NormalizedProgress nProgress(progressCb, pointCount); - QMutex mutex; bool cancelled = false; #ifndef _DEBUG @@ -1386,15 +1385,12 @@ bool Tools::PrepareFeatures(const CorePoints& corePoints, Feature::Set& features if (!localSuccess) { - mutex.lock(); cancelled = true; success = false; errorStr = "Feature computation failed for point " + QString::number(i) + " (using OpenMP with " + QString::number(omp_get_num_threads()) + " threads)"; ccLog::Error(localErrorStr); - mutex.unlock(); } - mutex.lock(); if (progressCb) { if (!cancelled) @@ -1405,12 +1401,10 @@ bool Tools::PrepareFeatures(const CorePoints& corePoints, Feature::Set& features //process cancelled by the user errorStr = "Process cancelled at point " + QString::number(i) + " (using OpenMP with " + QString::number(omp_get_num_threads()) + " threads)"; ccLog::Warning(errorStr); - ccLog::Error(localErrorStr); success = false; } } } - mutex.unlock(); } } //for each point