Don't update objects when a "changed" Feature2D or NearestNeighbor parameter is still the same (it happens when a parameter widget loses focus) to avoid unnecessary objects update
git-svn-id: http://find-object.googlecode.com/svn/trunk/find_object@277 620bd6b2-0a58-f614-fd9a-1bd335dccda9
This commit is contained in:
parent
e4ca56879c
commit
17873bacfa
@ -88,6 +88,7 @@ MainWindow::MainWindow(Camera * camera, const QString & settings, QWidget * pare
|
|||||||
Settings::loadSettings(settings_, &geometry, &state);
|
Settings::loadSettings(settings_, &geometry, &state);
|
||||||
this->restoreGeometry(geometry);
|
this->restoreGeometry(geometry);
|
||||||
this->restoreState(state);
|
this->restoreState(state);
|
||||||
|
lastObjectsUpdateParameters_ = Settings::getParameters();
|
||||||
|
|
||||||
ui_->toolBox->setupUi();
|
ui_->toolBox->setupUi();
|
||||||
connect((QDoubleSpinBox*)ui_->toolBox->getParameterWidget(Settings::kCamera_4imageRate()),
|
connect((QDoubleSpinBox*)ui_->toolBox->getParameterWidget(Settings::kCamera_4imageRate()),
|
||||||
@ -915,6 +916,7 @@ void MainWindow::updateData()
|
|||||||
}
|
}
|
||||||
this->statusBar()->clearMessage();
|
this->statusBar()->clearMessage();
|
||||||
}
|
}
|
||||||
|
lastObjectsUpdateParameters_ = Settings::getParameters();
|
||||||
}
|
}
|
||||||
|
|
||||||
void MainWindow::startProcessing()
|
void MainWindow::startProcessing()
|
||||||
@ -1720,24 +1722,26 @@ void MainWindow::update(const cv::Mat & image)
|
|||||||
|
|
||||||
void MainWindow::notifyParametersChanged(const QStringList & paramChanged)
|
void MainWindow::notifyParametersChanged(const QStringList & paramChanged)
|
||||||
{
|
{
|
||||||
|
|
||||||
//Selective update (to not update all objects for a simple camera's parameter modification)
|
//Selective update (to not update all objects for a simple camera's parameter modification)
|
||||||
bool detectorDescriptorParamsChanged = false;
|
bool detectorDescriptorParamsChanged = false;
|
||||||
bool nearestNeighborParamsChanged = false;
|
bool nearestNeighborParamsChanged = false;
|
||||||
for(QStringList::const_iterator iter = paramChanged.begin(); iter!=paramChanged.end(); ++iter)
|
for(QStringList::const_iterator iter = paramChanged.begin(); iter!=paramChanged.end(); ++iter)
|
||||||
{
|
{
|
||||||
printf("Parameter changed: %s\n", iter->toStdString().c_str());
|
printf("Parameter changed: %s\n", iter->toStdString().c_str());
|
||||||
if(!detectorDescriptorParamsChanged && iter->contains("Feature2D"))
|
if(lastObjectsUpdateParameters_.value(*iter) != Settings::getParameter(*iter))
|
||||||
{
|
{
|
||||||
detectorDescriptorParamsChanged = true;
|
if(!detectorDescriptorParamsChanged && iter->contains("Feature2D"))
|
||||||
}
|
{
|
||||||
else if(!nearestNeighborParamsChanged &&
|
detectorDescriptorParamsChanged = true;
|
||||||
( (iter->contains("NearestNeighbor") && Settings::getGeneral_invertedSearch()) ||
|
}
|
||||||
iter->compare(Settings::kGeneral_invertedSearch()) == 0 ||
|
else if(!nearestNeighborParamsChanged &&
|
||||||
(iter->compare(Settings::kGeneral_vocabularyIncremental()) == 0 && Settings::getGeneral_invertedSearch()) ||
|
( (iter->contains("NearestNeighbor") && Settings::getGeneral_invertedSearch()) ||
|
||||||
(iter->compare(Settings::kGeneral_threads()) == 0 && !Settings::getGeneral_invertedSearch()) ))
|
iter->compare(Settings::kGeneral_invertedSearch()) == 0 ||
|
||||||
{
|
(iter->compare(Settings::kGeneral_vocabularyIncremental()) == 0 && Settings::getGeneral_invertedSearch()) ||
|
||||||
nearestNeighborParamsChanged = true;
|
(iter->compare(Settings::kGeneral_threads()) == 0 && !Settings::getGeneral_invertedSearch()) ))
|
||||||
|
{
|
||||||
|
nearestNeighborParamsChanged = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(iter->compare(Settings::kGeneral_port()) == 0 &&
|
if(iter->compare(Settings::kGeneral_port()) == 0 &&
|
||||||
|
|||||||
@ -104,6 +104,7 @@ private:
|
|||||||
bool objectsModified_;
|
bool objectsModified_;
|
||||||
QMap<int, QByteArray> imagesMap_;
|
QMap<int, QByteArray> imagesMap_;
|
||||||
TcpServer * tcpServer_;
|
TcpServer * tcpServer_;
|
||||||
|
QMap<QString, QVariant> lastObjectsUpdateParameters_; // ParametersMap
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* MainWindow_H_ */
|
#endif /* MainWindow_H_ */
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user