diff --git a/EyeRecToo/src/CameraWidget.cpp b/EyeRecToo/src/CameraWidget.cpp index 983a59d8717f5d3a2a4fde97dc3f644dba734245..ff37b480f6a38a48d0499123a6d1d5818e7ea36a 100644 --- a/EyeRecToo/src/CameraWidget.cpp +++ b/EyeRecToo/src/CameraWidget.cpp @@ -436,6 +436,7 @@ void CameraWidget::onCameraCalibrationFinished(bool success) // TODO: at some point we might consider storing this with a unique camera ID instead of this generic one QString fileName = gCfgDir + "/" + id + "Calibration.xml"; QMetaObject::invokeMethod(cameraCalibration, "store", Qt::QueuedConnection, Q_ARG(QString, fileName)); + QMetaObject::invokeMethod(imageProcessor, "updateConfig", Qt::QueuedConnection); } void CameraWidget::drawROI(QPainter &painter) diff --git a/EyeRecToo/src/EyeImageProcessor.h b/EyeRecToo/src/EyeImageProcessor.h index 710f07294e1832c6bab41a83f459d393a60c53a8..cd534bd2440975c97c771d7ac1e486496379e196 100644 --- a/EyeRecToo/src/EyeImageProcessor.h +++ b/EyeRecToo/src/EyeImageProcessor.h @@ -213,7 +213,7 @@ public: QComboBox *pupilDetectionComboBox; signals: - void updateConfig(); + void updateConfig(); public slots: void showOptions(QPoint pos) @@ -243,7 +243,7 @@ public slots: cfg.pupilDetectionMethod = pupilDetectionComboBox->currentData().toString(); cfg.save(settings); emit updateConfig(); - } + } private: QPushButton *applyButton; @@ -267,8 +267,8 @@ signals: public slots: void process(Timestamp t, const cv::Mat &frame); - void updateConfig(); - void newROI(QPointF sROI, QPointF eROI); + void updateConfig(); + void newROI(QPointF sROI, QPointF eROI); private: QString id; diff --git a/EyeRecToo/src/FieldImageProcessor.cpp b/EyeRecToo/src/FieldImageProcessor.cpp index 1314a4c775c2ea94cbb133c0f1bb4192b613f021..2c80073f52cbcfcf7e488c25837d62d0311b8832 100644 --- a/EyeRecToo/src/FieldImageProcessor.cpp +++ b/EyeRecToo/src/FieldImageProcessor.cpp @@ -158,9 +158,7 @@ void FieldImageProcessor::sanitizeCameraParameters(Size size) * 1) Move camera parameters logic to the Camera instead so it's * considered for the eye cameras as well. * - * 2) Force update after a camera calibration has been performed. - * - * 3) Drop the logic for resizing the intrinsic parameters since it's not + * 2) Drop the logic for resizing the intrinsic parameters since it's not * throughly tested. * */ diff --git a/EyeRecToo/src/ImageProcessor.cpp b/EyeRecToo/src/ImageProcessor.cpp index 1f9de6966eae722adfe3a2615bbfb5f2eaa92ad1..ff249d9ec32c1ec3b517515cc00c5060cea78d25 100644 --- a/EyeRecToo/src/ImageProcessor.cpp +++ b/EyeRecToo/src/ImageProcessor.cpp @@ -40,10 +40,12 @@ void ImageProcessor::create() connect(this, SIGNAL(process(Timestamp,const cv::Mat&)), eyeProcessor, SLOT(process(Timestamp,const cv::Mat&)) ); connect(this, SIGNAL(newROI(QPointF,QPointF)), - eyeProcessor, SLOT(newROI(QPointF,QPointF)) ); + eyeProcessor, SLOT(newROI(QPointF,QPointF)) ); + connect(this, SIGNAL(updateConfig()), + eyeProcessor, SLOT(updateConfig()) ); connect(eyeProcessor, SIGNAL(newData(EyeData)), - this, SIGNAL(newData(EyeData)) ); + this, SIGNAL(newData(EyeData)) ); // GUI connect(this, SIGNAL(showOptions(QPoint)), @@ -55,7 +57,7 @@ void ImageProcessor::create() eyeProcessorUI->pupilDetectionComboBox->addItem(name, name); } connect(eyeProcessorUI, SIGNAL(updateConfig()), - eyeProcessor, SLOT(updateConfig()) ); + eyeProcessor, SLOT(updateConfig()) ); break; case Field: fieldProcessor = new FieldImageProcessor(id); @@ -63,6 +65,8 @@ void ImageProcessor::create() fieldProcessor, SLOT(process(Timestamp,const cv::Mat&)) ); connect(this, SIGNAL(newROI(QPointF,QPointF)), fieldProcessor, SLOT(newROI(QPointF,QPointF)) ); + connect(this, SIGNAL(updateConfig()), + fieldProcessor, SLOT(updateConfig()) ); connect(fieldProcessor, SIGNAL(newData(FieldData)), this, SIGNAL(newData(FieldData)) ); diff --git a/EyeRecToo/src/ImageProcessor.h b/EyeRecToo/src/ImageProcessor.h index 77cc60d621816487065c118c4ad59e9e94198869..77f4f66bf445eec79f3454fe995e950f53e9f666 100644 --- a/EyeRecToo/src/ImageProcessor.h +++ b/EyeRecToo/src/ImageProcessor.h @@ -25,6 +25,7 @@ signals: void newROI(QPointF sROI, QPointF eROI); void newData(EyeData data); void newData(FieldData data); + void updateConfig(); public slots: void create();