diff --git a/Classify3DMASCDialog.ui b/Classify3DMASCDialog.ui
index 418e01f..941c11c 100644
--- a/Classify3DMASCDialog.ui
+++ b/Classify3DMASCDialog.ui
@@ -82,20 +82,13 @@
color:red;
- Assign each role to the right cloud, and select the role of the cloud to be classified
+ Assign each label to the right cloud
Qt::AlignCenter
- -
-
-
- CLASSIFY
-
-
-
-
@@ -170,6 +163,18 @@
+ -
+
+
+
+ true
+
+
+
+ CLASSIFY
+
+
+
diff --git a/Train3DMASCDialog.ui b/Train3DMASCDialog.ui
index 19d5193..d32d265 100644
--- a/Train3DMASCDialog.ui
+++ b/Train3DMASCDialog.ui
@@ -157,7 +157,7 @@
false
- Save
+ Save classifier
@@ -231,7 +231,7 @@
-
- export
+ Export feature list
diff --git a/confusionmatrix.cpp b/confusionmatrix.cpp
index bc8c138..cbbfcf3 100644
--- a/confusionmatrix.cpp
+++ b/confusionmatrix.cpp
@@ -9,11 +9,12 @@
#include
-ConfusionMatrix::ConfusionMatrix(QWidget *parent) :
+ConfusionMatrix::ConfusionMatrix(std::vector &actual, std::vector &predicted, QWidget *parent) :
QWidget(parent),
ui(new Ui::ConfusionMatrix)
{
ui->setupUi(this);
+ compute(actual, predicted);
}
ConfusionMatrix::~ConfusionMatrix()
@@ -215,9 +216,6 @@ void ConfusionMatrix::compute(std::vector& actual, std::vectorui->tableWidget->setItem(2 + realIdx, 2 + nbClasses + F1_SCORE, newItem);
}
-// this->ui->tableWidget->horizontalHeader()->sectionResizeMode(QHeaderView::ResizeToContents);
-// this->ui->tableWidget->verticalHeader()->sectionResizeMode(QHeaderView::ResizeToContents);
-
this->show();
this->setMinimumSize(this->ui->tableWidget->sizeHint());
}
diff --git a/confusionmatrix.h b/confusionmatrix.h
index a668cb4..fb8e86c 100644
--- a/confusionmatrix.h
+++ b/confusionmatrix.h
@@ -23,7 +23,7 @@ public:
F1_SCORE = 2
};
- explicit ConfusionMatrix(QWidget *parent = nullptr);
+ explicit ConfusionMatrix(std::vector& actual, std::vector& predicted, QWidget *parent = nullptr);
~ConfusionMatrix();
void computePrecisionRecallF1Score(cv::Mat& matrix, cv::Mat& precisionRecallF1Score);
diff --git a/q3DMASC.cpp b/q3DMASC.cpp
index 30333fb..c8c86bc 100644
--- a/q3DMASC.cpp
+++ b/q3DMASC.cpp
@@ -138,7 +138,7 @@ void q3DMASCPlugin::doClassifyAction()
//now show a dialog where the user will be able to set the cloud roles
Classify3DMASCDialog classifDlg(m_app);
classifDlg.setCloudRoles(cloudLabels, corePointsLabel);
- classifDlg.label_trainOrClassify->setText("CLASSIFY " + corePointsLabel);
+ classifDlg.label_trainOrClassify->setText(corePointsLabel + " will be classified");
classifDlg.classifierFileLineEdit->setText(inputFilename);
static bool s_keepAttributes = false;
classifDlg.keepAttributesCheckBox->setChecked(s_keepAttributes);
@@ -274,7 +274,7 @@ void q3DMASCPlugin::doTrainAction()
Classify3DMASCDialog classifDlg(m_app, true);
classifDlg.setWindowTitle("3DMASC Train");
classifDlg.setCloudRoles(cloudLabels, corePointsLabel);
- classifDlg.label_trainOrClassify->setText("TRAIN on " + corePointsLabel);
+ classifDlg.label_trainOrClassify->setText("The classifier will be trained on " + corePointsLabel);
classifDlg.classifierFileLineEdit->setText(inputFilename);
classifDlg.keepAttributesCheckBox->setChecked(s_keepAttributes);
if (!classifDlg.exec())
@@ -672,7 +672,7 @@ void q3DMASCPlugin::doTrainAction()
}
//now wait for the user input
- while (true)
+ while (true) // ew!
{
if (!trainDlg.exec())
{
diff --git a/q3DMASCClassifier.cpp b/q3DMASCClassifier.cpp
index 581edeb..fad380e 100644
--- a/q3DMASCClassifier.cpp
+++ b/q3DMASCClassifier.cpp
@@ -274,8 +274,7 @@ bool Classifier::classify( const Feature::Source::Set& featureSources,
QCoreApplication::processEvents();
}
- ConfusionMatrix *confusionMatrix = new ConfusionMatrix();
- confusionMatrix->compute(*classifSFBackup, *classificationSF);
+ ConfusionMatrix *confusionMatrix = new ConfusionMatrix(*classifSFBackup, *classificationSF);
return success;
}
@@ -435,6 +434,8 @@ bool Classifier::evaluate(const Feature::Source::Set& featureSources,
metrics.ratio = static_cast(metrics.goodGuess) / metrics.sampleCount;
}
+ ConfusionMatrix *confusionMatrix = new ConfusionMatrix(*classifSF, *outputSF);
+
return true;
}