mainny ui improcements
This commit is contained in:
@ -7,20 +7,26 @@
|
||||
#include <uvosunwrap/charuco.h>
|
||||
#include <uvosunwrap/unwrap.h>
|
||||
#include <opencv2/imgproc.hpp>
|
||||
#include <QDebug>
|
||||
|
||||
ConfigureCameraDialog::ConfigureCameraDialog(const CameraSetup& setup, std::shared_ptr<Camera> camera, double exposureTime, QWidget *parent):
|
||||
QDialog(parent),
|
||||
setup_(setup),
|
||||
camera_(camera),
|
||||
profileExposure_(exposureTime),
|
||||
ui(new Ui::ConfigureCameraDialog)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
qDebug()<<"profileExposure_"<<profileExposure_;
|
||||
ui->doubleSpinBox->setValue(profileExposure_);
|
||||
setExposure(profileExposure_);
|
||||
|
||||
ui->doubleSpinBox->setValue(exposureTime);
|
||||
uint64_t min, max;
|
||||
camera_->cam()->getExposureTimeLimits(min, max);
|
||||
ui->doubleSpinBox->setMaximum(max/1000000.0);
|
||||
ui->doubleSpinBox->setMinimum(min/1000000.0);
|
||||
|
||||
connect(ui->pushButtonBgLoad, &QPushButton::clicked, this, &ConfigureCameraDialog::loadBg);
|
||||
connect(ui->pushButtonRemapLoad, &QPushButton::clicked, this, &ConfigureCameraDialog::loadRemap);
|
||||
connect(ui->pushButtonDarkImageLoad, &QPushButton::clicked, this, &ConfigureCameraDialog::loadDark);
|
||||
connect(ui->doubleSpinBox, QOverload<double>::of(&QDoubleSpinBox::valueChanged), this, &ConfigureCameraDialog::setExposure);
|
||||
connect(ui->pushButtonBgClear, &QPushButton::clicked, [this](){setup_.bgmask.release(); checkConfig();});
|
||||
connect(ui->pushButtonRemapClear, &QPushButton::clicked, [this](){setup_.remapMap = RemapMap(); checkConfig();});
|
||||
connect(ui->pushButtonDarkImageClear, &QPushButton::clicked, [this](){setup_.darkmap.release(); checkConfig();});
|
||||
@ -38,45 +44,12 @@ ConfigureCameraDialog::~ConfigureCameraDialog()
|
||||
delete ui;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void ConfigureCameraDialog::loadBg()
|
||||
void ConfigureCameraDialog::setExposure(double value)
|
||||
{
|
||||
QString filename = QFileDialog::getOpenFileName(this, tr("Open Background Mask"), CameraSetup::camerasLocation(), "OpenCV Mat (*.mat)");
|
||||
if(!filename.isEmpty())
|
||||
{
|
||||
setup_.loadBgMask(filename);
|
||||
if(!setup_.bgmask.data)
|
||||
QMessageBox::warning(this, "Warning", "Could not load " + filename);
|
||||
checkConfig();
|
||||
}
|
||||
}
|
||||
|
||||
void ConfigureCameraDialog::loadRemap()
|
||||
{
|
||||
QString filename = QFileDialog::getOpenFileName(this, tr("Open Background Mask"), CameraSetup::camerasLocation(), "OpenCV Mat (*.mat)");
|
||||
if(!filename.isEmpty())
|
||||
{
|
||||
setup_.loadRemapMaps(filename);
|
||||
if(!setup_.remapMap.xMat.data || !setup_.remapMap.yMat.data)
|
||||
{
|
||||
QMessageBox::warning(this, "Warning", "Could not load " + filename);
|
||||
setup_.remapMap = RemapMap();
|
||||
}
|
||||
checkConfig();
|
||||
}
|
||||
}
|
||||
|
||||
void ConfigureCameraDialog::loadDark()
|
||||
{
|
||||
QString filename = QFileDialog::getOpenFileName(this, tr("Open Background Mask"), CameraSetup::camerasLocation(), "Image (*.png)");
|
||||
if(!filename.isEmpty())
|
||||
{
|
||||
setup_.loadDarkMap(filename);
|
||||
if(!setup_.darkmap.data)
|
||||
QMessageBox::warning(this, "Warning", "Could not load " + filename);
|
||||
checkConfig();
|
||||
}
|
||||
if(!camera_->cam()->setExposureTime(value*1000000.0))
|
||||
QMessageBox::warning(this, "Warning", "Failed to set exposure");
|
||||
else
|
||||
qDebug()<<"set exposure to "<<value*1000000.0;
|
||||
}
|
||||
|
||||
void ConfigureCameraDialog::gotImage(Camera::Image img)
|
||||
@ -109,6 +82,11 @@ void ConfigureCameraDialog::gotImage(Camera::Image img)
|
||||
mode_ = MODE_IDLE;
|
||||
break;
|
||||
case MODE_REMAP_GET:
|
||||
cv::Mat masked;
|
||||
if(setup_.bgmask.data)
|
||||
img.mat.copyTo(masked, setup_.bgmask);
|
||||
else
|
||||
masked = img.mat;
|
||||
std::vector<DetectedPoint> points = detectCharucoPoints(img.mat, false);
|
||||
if(points.size() < 8)
|
||||
{
|
||||
@ -117,13 +95,13 @@ void ConfigureCameraDialog::gotImage(Camera::Image img)
|
||||
break;
|
||||
}
|
||||
RemapMap map;
|
||||
if(createRemapMap(img.mat, map, points))
|
||||
if(createRemapMap(masked, map, points))
|
||||
setup_.remapMap = map;
|
||||
else
|
||||
QMessageBox::warning(this, "Failed", "Error creating map");
|
||||
for(size_t i = 0; i < points.size(); ++i)
|
||||
cv::circle(img.mat, points[i].point, 5, cv::Scalar(0,255,0), 1);
|
||||
ui->widget_4->setImage(Camera::Image(setup_.bgmask, camera_->id()));
|
||||
cv::circle(img.mat, points[i].point, img.mat.cols/50, cv::Scalar(255,255,255), img.mat.cols/200);
|
||||
ui->widget_4->setImage(Camera::Image(img.mat, camera_->id()));
|
||||
mode_ = MODE_IDLE;
|
||||
break;
|
||||
}
|
||||
@ -157,6 +135,8 @@ void ConfigureCameraDialog::captureDark()
|
||||
{
|
||||
QMessageBox::information(this, "Cover lense", "Please cover the lense of the camera.");
|
||||
mode_ = MODE_DARK_GET;
|
||||
ui->doubleSpinBox->setValue(profileExposure_);
|
||||
setExposure(profileExposure_);
|
||||
takeImage();
|
||||
}
|
||||
|
||||
@ -165,7 +145,7 @@ void ConfigureCameraDialog::accept()
|
||||
if(checkConfig())
|
||||
QDialog::accept();
|
||||
else
|
||||
QMessageBox::warning(this, "Unfinished", "Can not accept unfinished camera setup");
|
||||
QMessageBox::information(this, "Unfinished", "Can not accept unfinished camera setup");
|
||||
}
|
||||
|
||||
bool ConfigureCameraDialog::checkConfig()
|
||||
@ -182,5 +162,5 @@ bool ConfigureCameraDialog::checkConfig()
|
||||
ui->ledDark->setLit(darkMapOK);
|
||||
ui->ledRemap->setLit(remapMapOk);
|
||||
|
||||
return bgOk && remapMapOk && darkMapOK;
|
||||
return remapMapOk;
|
||||
}
|
||||
|
Reference in New Issue
Block a user