This commit is contained in:
Daniel Girardeau-Montaut
2019-03-27 15:03:58 +01:00
parent da6293e522
commit c743f43d92
5 changed files with 28 additions and 25 deletions
+1 -1
View File
@@ -141,7 +141,7 @@
</widget>
</item>
<item row="6" column="0">
<widget class="QLabel" name="label_2">
<widget class="QLabel" name="testLabel">
<property name="text">
<string>TEST (optional)</string>
</property>
+6 -4
View File
@@ -141,6 +141,8 @@ void q3DMASCPlugin::doClassifyAction()
classifDlg.classifierFileLineEdit->setText(inputFilename);
static bool s_keepAttributes = false;
classifDlg.keepAttributesCheckBox->setChecked(s_keepAttributes);
classifDlg.testCloudComboBox->hide();
classifDlg.testLabel->hide();
if (!classifDlg.exec())
{
//process cancelled by the user
@@ -159,7 +161,7 @@ void q3DMASCPlugin::doClassifyAction()
{
return;
}
if (classifier.isValid())
if (!classifier.isValid())
{
m_app->dispToConsole("No classifier or invalid classifier", ccMainAppInterface::ERR_CONSOLE_MESSAGE);
return;
@@ -448,7 +450,7 @@ void q3DMASCPlugin::doTrainAction()
masc::Feature::Set toPrepare;
for (size_t i = 0; i < originalFeatures.size(); ++i)
{
originalFeatures[i].selected = trainDlg.isFeatureSelected(i);
originalFeatures[i].selected = trainDlg.isFeatureSelected(originalFeatures[i].feature->toString());
//if the feature is selected
if (originalFeatures[i].selected)
@@ -570,7 +572,7 @@ void q3DMASCPlugin::doTrainAction()
masc::Feature::Set toPrepareTest;
for (size_t i = 0; i < originalFeaturesTest.size(); ++i)
{
originalFeaturesTest[i].selected = trainDlg.isFeatureSelected(i);
originalFeaturesTest[i].selected = trainDlg.isFeatureSelected(originalFeatures[i].feature->toString());
//if the feature is selected
if (originalFeaturesTest[i].selected)
@@ -651,7 +653,7 @@ void q3DMASCPlugin::doTrainAction()
{
originalFeatures[i].importance = std::numeric_limits<float>::quiet_NaN();
}
trainDlg.setFeatureImportance(i, originalFeatures[i].importance);
trainDlg.setFeatureImportance(originalFeatures[i].feature->toString(), originalFeatures[i].importance);
}
trainDlg.sortByFeatureImportance();
+1 -1
View File
@@ -56,7 +56,7 @@ static IScalarFieldWrapper::Shared GetSource(const Feature::Source& fs, const cc
{
case Feature::Source::ScalarField:
{
assert(fs.name.isEmpty());
assert(!fs.name.isEmpty());
int sfIdx = cloud->getScalarFieldIndexByName(qPrintable(fs.name));
if (sfIdx >= 0)
{
+18 -17
View File
@@ -70,15 +70,19 @@ void Train3DMASCDialog::setFirstRunDone()
savePushButton->setEnabled(true);
}
bool Train3DMASCDialog::isFeatureSelected(size_t index) const
bool Train3DMASCDialog::isFeatureSelected(QString featureName) const
{
if (static_cast<int>(index) >= tableWidget->rowCount())
for (int index = 0; index < tableWidget->rowCount(); ++index)
{
assert(false);
return false;
QTableWidgetItem* item = tableWidget->item(index, 0);
if (item->text() == featureName)
{
return (item->checkState() == Qt::Checked);
}
}
return (tableWidget->item(static_cast<int>(index), 0)->checkState() == Qt::Checked);
assert(false);
return false;
}
void Train3DMASCDialog::sortByFeatureImportance()
@@ -86,22 +90,19 @@ void Train3DMASCDialog::sortByFeatureImportance()
tableWidget->sortByColumn(FeatureImportanceColumn, Qt::AscendingOrder);
}
void Train3DMASCDialog::setFeatureImportance(size_t index, float importance)
void Train3DMASCDialog::setFeatureImportance(QString featureName, float importance)
{
if (static_cast<int>(index) >= tableWidget->rowCount())
for (int index = 0; index < tableWidget->rowCount(); ++index)
{
assert(false);
return;
if (tableWidget->item(index, 0)->text() == featureName)
{
QTableWidgetItem* item = tableWidget->item(static_cast<int>(index), FeatureImportanceColumn);
item->setText(std::isnan(importance) ? QString() : QString::number(importance, 'f', 6));
return;
}
}
if (!std::isnan(importance))
{
tableWidget->item(static_cast<int>(index), FeatureImportanceColumn)->setText(QString::number(importance));
}
else
{
tableWidget->item(static_cast<int>(index), FeatureImportanceColumn)->setText(QString());
}
assert(false);
}
void Train3DMASCDialog::onClose()
+2 -2
View File
@@ -43,8 +43,8 @@ public:
void setFirstRunDone();
inline void setClassifierSaved() { classifierSaved = true; saveRequested = false; }
bool isFeatureSelected(size_t index) const;
void setFeatureImportance(size_t index, float importance);
bool isFeatureSelected(QString featureName) const;
void setFeatureImportance(QString featureName, float importance);
void sortByFeatureImportance();
inline bool shouldSaveClassifier() const { return saveRequested; }