diff --git a/app/SandboxSetup/camerafocus.cpp b/app/SandboxSetup/camerafocus.cpp index 8a8b2bfb01b70322046dd90f13ec9cb4905a37ca..724416228a7b08e18ee9d95d8f1bfc518f1244a3 100644 --- a/app/SandboxSetup/camerafocus.cpp +++ b/app/SandboxSetup/camerafocus.cpp @@ -128,15 +128,6 @@ void CameraFocus::refreshFrame(){ void CameraFocus::initCameraParams(){ FrameProcessProfil *profil = setup->getBeamer()->getProfil(); - - /*defaultProfil.setContrast(profil->getContrast()); - defaultProfil.setBrightness(profil->getBrightness()); - defaultProfil.setMinDistance(profil->getMinDistance()); - defaultProfil.setCannyEdgeThreshold(profil->getCannyEdgeThreshold()); - defaultProfil.setHoughAccThreshold(profil->getHoughAccThreshold()); - defaultProfil.setMinRadius(profil->getMinRadius()); - defaultProfil.setMaxRadius(profil->getMaxRadius()); -*/ loadProfil(profil, &defaultProfil); } @@ -147,16 +138,28 @@ void CameraFocus::loadProfil(FrameProcessProfil *profilLoaded, FrameProcessProfi profilSaved->setMinDistance(profilLoaded->getMinDistance()); profilSaved->setCannyEdgeThreshold(profilLoaded->getCannyEdgeThreshold()); profilSaved->setHoughAccThreshold(profilLoaded->getHoughAccThreshold()); - profilSaved->setMinRadius(profilLoaded->getMinRadius()); - profilSaved->setMaxRadius(profilLoaded->getMaxRadius()); + ui->sbxContrast->setValue(profilLoaded->getContrast()); ui->sbxBrightness->setValue(profilLoaded->getBrightness()); ui->sbxMinDistance->setValue(profilLoaded->getMinDistance()); ui->sbxCannyThreshold->setValue(profilLoaded->getCannyEdgeThreshold()); ui->sbxAccThreshold->setValue(profilLoaded->getHoughAccThreshold()); - ui->sbxMinRadius->setValue(profilLoaded->getMinRadius()); - ui->sbxMaxRadius->setValue(profilLoaded->getMaxRadius()); + + if(profilLoaded->getMinRadius() > 0 && profilLoaded->getMaxRadius() > 0){ + profilSaved->setMinRadius(profilLoaded->getMinRadius()); + profilSaved->setMaxRadius(profilLoaded->getMaxRadius()); + ui->sbxMinRadius->setValue(profilLoaded->getMinRadius()); + ui->sbxMaxRadius->setValue(profilLoaded->getMaxRadius()); + ui->ckbxTargetSize->setChecked(true); + ui->ckbxTargetSize->clicked(true); + }else{ + profilLoaded->setMinRadius(0); + profilLoaded->setMaxRadius(0); + profilSaved->setMinRadius(0); + profilSaved->setMaxRadius(0); + } + } void CameraFocus::on_btnReset_clicked() @@ -248,3 +251,17 @@ void CameraFocus::on_sbxMaxRadius_valueChanged(int arg1) setup->getBeamer()->getProfil()->setMaxRadius((uint)arg1); ui->sldMaxRadius->setValue(arg1); } + +void CameraFocus::on_ckbxTargetSize_clicked(bool checked) +{ + std::vector<QWidget *> lst = { ui->lblMinRadius, ui->sldMinRadius, ui->sbxMinRadius, + ui->lblMaxRadius, ui->sldMaxRadius, ui->sbxMaxRadius }; + for(QWidget *w: lst){ + w->setEnabled(checked); + } + + uint min = (checked) ? (uint)ui->sbxMinRadius->value() : 0; + uint max = (checked) ? (uint)ui->sbxMaxRadius->value() : 0; + setup->getBeamer()->getProfil()->setMinRadius(min); + setup->getBeamer()->getProfil()->setMaxRadius(max); +} diff --git a/app/SandboxSetup/camerafocus.h b/app/SandboxSetup/camerafocus.h index 473ab0f817bdd34e1f8b8bde24aad13a1fe06204..2df9e48ca3e7c239f416936be9d24917fca8edb5 100644 --- a/app/SandboxSetup/camerafocus.h +++ b/app/SandboxSetup/camerafocus.h @@ -58,6 +58,8 @@ private slots: void on_sbxMaxRadius_valueChanged(int arg1); + void on_ckbxTargetSize_clicked(bool checked); + protected: void showEvent(QShowEvent *event); void closeEvent(QCloseEvent *event); diff --git a/app/SandboxSetup/camerafocus.ui b/app/SandboxSetup/camerafocus.ui index 20a20b15a370a5243bf39f1516ae9c91378ea863..8bbd4a1e821b704e630b00883403f5b4f522ba87 100644 --- a/app/SandboxSetup/camerafocus.ui +++ b/app/SandboxSetup/camerafocus.ui @@ -7,7 +7,7 @@ <x>0</x> <y>0</y> <width>810</width> - <height>640</height> + <height>691</height> </rect> </property> <property name="windowTitle"> @@ -17,7 +17,7 @@ <property name="geometry"> <rect> <x>20</x> - <y>70</y> + <y>40</y> <width>381</width> <height>211</height> </rect> @@ -39,7 +39,7 @@ <property name="geometry"> <rect> <x>680</x> - <y>310</y> + <y>280</y> <width>89</width> <height>25</height> </rect> @@ -52,7 +52,7 @@ <property name="geometry"> <rect> <x>410</x> - <y>70</y> + <y>40</y> <width>381</width> <height>211</height> </rect> @@ -74,7 +74,7 @@ <property name="geometry"> <rect> <x>20</x> - <y>40</y> + <y>10</y> <width>161</width> <height>17</height> </rect> @@ -87,7 +87,7 @@ <property name="geometry"> <rect> <x>420</x> - <y>40</y> + <y>10</y> <width>161</width> <height>17</height> </rect> @@ -100,41 +100,53 @@ <property name="geometry"> <rect> <x>60</x> - <y>350</y> + <y>320</y> <width>671</width> - <height>281</height> + <height>301</height> </rect> </property> <layout class="QGridLayout" name="glytParams"> - <item row="3" column="2"> - <widget class="QSpinBox" name="sbxCannyThreshold"> + <item row="2" column="1"> + <widget class="QSlider" name="sldMinDistance"> + <property name="minimum"> + <number>1</number> + </property> <property name="maximum"> - <number>255</number> + <number>20</number> </property> <property name="value"> - <number>100</number> + <number>8</number> + </property> + <property name="orientation"> + <enum>Qt::Horizontal</enum> </property> </widget> </item> - <item row="4" column="2"> - <widget class="QSpinBox" name="sbxAccThreshold"> + <item row="1" column="2"> + <widget class="QSpinBox" name="sbxBrightness"> + <property name="minimum"> + <number>-255</number> + </property> <property name="maximum"> - <number>300</number> + <number>255</number> </property> - <property name="value"> - <number>50</number> + <property name="singleStep"> + <number>1</number> </property> </widget> </item> - <item row="5" column="0"> - <widget class="QLabel" name="label_6"> + <item row="4" column="0"> + <widget class="QLabel" name="label_5"> <property name="text"> - <string>Minimum circle radius (divisor from the camera's width)</string> + <string>Hough accumulator threshold</string> </property> </widget> </item> - <item row="2" column="2"> - <widget class="QSpinBox" name="sbxMinDistance"> + <item row="6" column="2"> + <widget class="QSpinBox" name="sbxMinRadius"> + <property name="enabled"> + <bool>false</bool> + </property> <property name="minimum"> <number>1</number> </property> @@ -142,14 +154,7 @@ <number>20</number> </property> <property name="value"> - <number>8</number> - </property> - </widget> - </item> - <item row="0" column="0"> - <widget class="QLabel" name="label"> - <property name="text"> - <string>Contrast</string> + <number>10</number> </property> </widget> </item> @@ -160,6 +165,22 @@ </property> </widget> </item> + <item row="7" column="2"> + <widget class="QSpinBox" name="sbxMaxRadius"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="minimum"> + <number>1</number> + </property> + <property name="maximum"> + <number>20</number> + </property> + <property name="value"> + <number>2</number> + </property> + </widget> + </item> <item row="3" column="0"> <widget class="QLabel" name="label_4"> <property name="text"> @@ -167,32 +188,39 @@ </property> </widget> </item> - <item row="1" column="2"> - <widget class="QSpinBox" name="sbxBrightness"> - <property name="minimum"> - <number>-255</number> + <item row="6" column="0"> + <widget class="QLabel" name="lblMinRadius"> + <property name="enabled"> + <bool>false</bool> </property> - <property name="maximum"> - <number>255</number> + <property name="text"> + <string>Minimum circle radius (divisor from the camera's width)</string> </property> - <property name="singleStep"> - <number>1</number> + </widget> + </item> + <item row="0" column="0"> + <widget class="QLabel" name="label"> + <property name="text"> + <string>Contrast</string> </property> </widget> </item> - <item row="0" column="2"> - <widget class="QDoubleSpinBox" name="sbxContrast"> + <item row="6" column="1"> + <widget class="QSlider" name="sldMinRadius"> + <property name="enabled"> + <bool>false</bool> + </property> <property name="minimum"> - <double>0.010000000000000</double> + <number>1</number> </property> <property name="maximum"> - <double>255.000000000000000</double> - </property> - <property name="singleStep"> - <double>0.010000000000000</double> + <number>20</number> </property> <property name="value"> - <double>1.000000000000000</double> + <number>10</number> + </property> + <property name="orientation"> + <enum>Qt::Horizontal</enum> </property> </widget> </item> @@ -209,10 +237,13 @@ </property> </widget> </item> - <item row="4" column="0"> - <widget class="QLabel" name="label_5"> - <property name="text"> - <string>Hough accumulator threshold</string> + <item row="3" column="2"> + <widget class="QSpinBox" name="sbxCannyThreshold"> + <property name="maximum"> + <number>255</number> + </property> + <property name="value"> + <number>100</number> </property> </widget> </item> @@ -232,23 +263,42 @@ </property> </widget> </item> - <item row="6" column="0"> - <widget class="QLabel" name="label_7"> + <item row="2" column="2"> + <widget class="QSpinBox" name="sbxMinDistance"> + <property name="minimum"> + <number>1</number> + </property> + <property name="maximum"> + <number>20</number> + </property> + <property name="value"> + <number>8</number> + </property> + </widget> + </item> + <item row="7" column="0"> + <widget class="QLabel" name="lblMaxRadius"> + <property name="enabled"> + <bool>false</bool> + </property> <property name="text"> <string>Maximum circle radius (divisor from the camera's width)</string> </property> </widget> </item> - <item row="1" column="1"> - <widget class="QSlider" name="sldBrightness"> + <item row="0" column="2"> + <widget class="QDoubleSpinBox" name="sbxContrast"> <property name="minimum"> - <number>-255</number> + <double>0.010000000000000</double> </property> <property name="maximum"> - <number>255</number> + <double>255.000000000000000</double> </property> - <property name="orientation"> - <enum>Qt::Horizontal</enum> + <property name="singleStep"> + <double>0.010000000000000</double> + </property> + <property name="value"> + <double>1.000000000000000</double> </property> </widget> </item> @@ -265,66 +315,50 @@ </property> </widget> </item> - <item row="5" column="2"> - <widget class="QSpinBox" name="sbxMinRadius"> - <property name="minimum"> - <number>1</number> - </property> + <item row="4" column="2"> + <widget class="QSpinBox" name="sbxAccThreshold"> <property name="maximum"> - <number>20</number> + <number>300</number> </property> <property name="value"> - <number>10</number> + <number>50</number> </property> </widget> </item> - <item row="6" column="2"> - <widget class="QSpinBox" name="sbxMaxRadius"> - <property name="minimum"> - <number>1</number> - </property> + <item row="4" column="1"> + <widget class="QSlider" name="sldAccThreshold"> <property name="maximum"> - <number>20</number> + <number>300</number> </property> <property name="value"> - <number>2</number> - </property> - </widget> - </item> - <item row="5" column="1"> - <widget class="QSlider" name="sldMinRadius"> - <property name="minimum"> - <number>1</number> - </property> - <property name="maximum"> - <number>20</number> + <number>50</number> </property> - <property name="value"> - <number>10</number> + <property name="sliderPosition"> + <number>50</number> </property> <property name="orientation"> <enum>Qt::Horizontal</enum> </property> </widget> </item> - <item row="6" column="1"> - <widget class="QSlider" name="sldMaxRadius"> + <item row="1" column="1"> + <widget class="QSlider" name="sldBrightness"> <property name="minimum"> - <number>1</number> + <number>-255</number> </property> <property name="maximum"> - <number>20</number> - </property> - <property name="value"> - <number>2</number> + <number>255</number> </property> <property name="orientation"> <enum>Qt::Horizontal</enum> </property> </widget> </item> - <item row="2" column="1"> - <widget class="QSlider" name="sldMinDistance"> + <item row="7" column="1"> + <widget class="QSlider" name="sldMaxRadius"> + <property name="enabled"> + <bool>false</bool> + </property> <property name="minimum"> <number>1</number> </property> @@ -332,26 +366,17 @@ <number>20</number> </property> <property name="value"> - <number>8</number> + <number>2</number> </property> <property name="orientation"> <enum>Qt::Horizontal</enum> </property> </widget> </item> - <item row="4" column="1"> - <widget class="QSlider" name="sldAccThreshold"> - <property name="maximum"> - <number>300</number> - </property> - <property name="value"> - <number>50</number> - </property> - <property name="sliderPosition"> - <number>50</number> - </property> - <property name="orientation"> - <enum>Qt::Horizontal</enum> + <item row="5" column="0"> + <widget class="QCheckBox" name="ckbxTargetSize"> + <property name="text"> + <string>Target's size known</string> </property> </widget> </item> diff --git a/app/SandboxSetup/croppingmask.ui b/app/SandboxSetup/croppingmask.ui index a1fb692813daae9e982f7aff515b173b5e8ecb4b..030968bb000f4f6b7258cde5a1b828b4d2079135 100644 --- a/app/SandboxSetup/croppingmask.ui +++ b/app/SandboxSetup/croppingmask.ui @@ -18,8 +18,8 @@ <rect> <x>40</x> <y>40</y> - <width>441</width> - <height>301</height> + <width>451</width> + <height>271</height> </rect> </property> <property name="frameShape"> @@ -33,8 +33,8 @@ <rect> <x>0</x> <y>0</y> - <width>441</width> - <height>301</height> + <width>451</width> + <height>271</height> </rect> </property> <layout class="QVBoxLayout" name="vLayout"> @@ -48,7 +48,7 @@ <property name="geometry"> <rect> <x>40</x> - <y>370</y> + <y>350</y> <width>161</width> <height>17</height> </rect> @@ -61,7 +61,7 @@ <property name="geometry"> <rect> <x>40</x> - <y>390</y> + <y>370</y> <width>561</width> <height>91</height> </rect>