add support for chaning cvimage scaleing in ui
cahnge .desktop exec params
This commit is contained in:
@ -95,10 +95,10 @@ void ConfigureCameraDialog::bayerIndexChanged(int index)
|
||||
setup_.bayerMode = cam::Camera::BAYER_BLUE;
|
||||
break;
|
||||
case 1:
|
||||
setup_.bayerMode = cam::Camera::BAYER_RED;
|
||||
setup_.bayerMode = cam::Camera::BAYER_GREEN;
|
||||
break;
|
||||
case 2:
|
||||
setup_.bayerMode = cam::Camera::BAYER_GREEN;
|
||||
setup_.bayerMode = cam::Camera::BAYER_RED;
|
||||
break;
|
||||
case 3:
|
||||
setup_.bayerMode = cam::Camera::BAYER_PASSTHOUGH;
|
||||
|
@ -90,6 +90,14 @@ void CvImageViewer::showSatDiag()
|
||||
diag.exec();
|
||||
}
|
||||
|
||||
void CvImageViewer::setClamp(double max)
|
||||
{
|
||||
clamp_ = max;
|
||||
convertImage(origImage_);
|
||||
update();
|
||||
roi_ = cv::Rect(0, 0, image_.size().width, image_.size().height);
|
||||
}
|
||||
|
||||
void CvImageViewer::convertImage(cv::Mat image)
|
||||
{
|
||||
image_ = image;
|
||||
@ -107,6 +115,13 @@ void CvImageViewer::convertImage(cv::Mat image)
|
||||
{
|
||||
double min, max;
|
||||
cv::minMaxIdx(image_, &min, &max);
|
||||
sigMax(max);
|
||||
if(max > clamp_)
|
||||
{
|
||||
max = clamp_;
|
||||
|
||||
qDebug()<<"clamped to"<<clamp_;
|
||||
}
|
||||
double a = 255.0/(max - min);
|
||||
double b = 0-(min*a);
|
||||
qDebug()<<min<<max<<a<<b;
|
||||
@ -118,6 +133,9 @@ void CvImageViewer::convertImage(cv::Mat image)
|
||||
{
|
||||
double min, max;
|
||||
cv::minMaxIdx(image_, &min, &max);
|
||||
sigMax(max);
|
||||
if(max > clamp_)
|
||||
max = clamp_;
|
||||
double a = 255.0/(max - min);
|
||||
double b = 0-(min*a);
|
||||
qDebug()<<min<<max<<a<<b;
|
||||
|
@ -4,6 +4,8 @@
|
||||
#include <QWidget>
|
||||
#include <QPainter>
|
||||
#include <QMenu>
|
||||
#include <QSlider>
|
||||
#include <limits>
|
||||
#include "../cameras.h"
|
||||
|
||||
class CvImageViewer : public QWidget
|
||||
@ -25,6 +27,7 @@ private:
|
||||
cv::Rect roi_;
|
||||
QRect selectionRect_;
|
||||
bool selectionStarted_ = false;
|
||||
double clamp_ = std::numeric_limits<double>::max();
|
||||
|
||||
void transfromToSourceCoordinates(int inX, int inY, int& outX, int& outY);
|
||||
void convertImage(cv::Mat image);
|
||||
@ -44,9 +47,11 @@ protected:
|
||||
|
||||
signals:
|
||||
void sigValue(size_t x, size_t y, double value);
|
||||
void sigMax(double max);
|
||||
|
||||
public slots:
|
||||
void setImage(Camera::Image img);
|
||||
void setClamp(double max);
|
||||
|
||||
public:
|
||||
explicit CvImageViewer(QWidget *parent = nullptr, size_t lastId = 0);
|
||||
|
@ -7,7 +7,7 @@
|
||||
|
||||
#include "../profile.h"
|
||||
|
||||
MainWindow::MainWindow(QWidget *parent)
|
||||
MainWindow::MainWindow(bool viewer, QWidget *parent)
|
||||
: QMainWindow(parent)
|
||||
, about_(this)
|
||||
, ui(new Ui::MainWindow)
|
||||
@ -24,8 +24,17 @@ MainWindow::MainWindow(QWidget *parent)
|
||||
connect(ui->actionOpen, &QAction::triggered, [this](bool checked){(void)checked; openImage();});
|
||||
connect(ui->actionSave_2, &QAction::triggered, [this](bool checked){(void)checked; saveImage();});
|
||||
connect(ui->actionAbout, &QAction::triggered, [this](bool checked){(void)checked; about_.show();});
|
||||
connect(ui->horizontalSlider_max, &QSlider::sliderMoved, [this](double value){ui->mainViewer->setClamp(value/10.0);});
|
||||
connect(ui->mainViewer, &CvImageViewer::sigMax, [this](double max){ui->horizontalSlider_max->setMaximum(max*10.0);});
|
||||
refreshProfiles();
|
||||
|
||||
if(viewer)
|
||||
{
|
||||
ui->groupBoxCameras->setVisible(false);
|
||||
ui->groupBox_3->setVisible(false);
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::setImageValue(size_t x, size_t y, double value)
|
||||
{
|
||||
ui->lcdNumber_3->display((double)x);
|
||||
|
@ -42,7 +42,7 @@ public slots:
|
||||
void setTemperature(double temp);
|
||||
|
||||
public:
|
||||
MainWindow(QWidget *parent = nullptr);
|
||||
MainWindow(bool viewer = false, QWidget *parent = nullptr);
|
||||
~MainWindow();
|
||||
CvImageViewer* mainImageViewer();
|
||||
|
||||
|
@ -6,8 +6,8 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>800</width>
|
||||
<height>600</height>
|
||||
<width>1042</width>
|
||||
<height>635</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
@ -42,8 +42,8 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>182</width>
|
||||
<height>483</height>
|
||||
<width>244</width>
|
||||
<height>518</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_7">
|
||||
@ -74,8 +74,8 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>563</width>
|
||||
<height>282</height>
|
||||
<width>743</width>
|
||||
<height>289</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_6">
|
||||
@ -135,6 +135,39 @@
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_4">
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_5">
|
||||
<property name="text">
|
||||
<string>Render scale</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QSlider" name="horizontalSlider_max">
|
||||
<property name="maximum">
|
||||
<number>100</number>
|
||||
</property>
|
||||
<property name="pageStep">
|
||||
<number>1</number>
|
||||
</property>
|
||||
<property name="value">
|
||||
<number>100</number>
|
||||
</property>
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
@ -227,7 +260,7 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>800</width>
|
||||
<width>1042</width>
|
||||
<height>32</height>
|
||||
</rect>
|
||||
</property>
|
||||
|
Reference in New Issue
Block a user