From 43b30963c0dee6dd53d535b5d21c497a25020e07 Mon Sep 17 00:00:00 2001 From: ponchio Date: Mon, 3 Feb 2025 09:27:17 +0100 Subject: [PATCH] minor interface changes --- align/main.cpp | 13 +++++++++++-- relightlab/alignpicking.cpp | 12 ++++++++++++ relightlab/alignpicking.h | 3 +++ relightlab/alignrow.cpp | 33 +++++++++++++++++++++++++-------- relightlab/alignrow.h | 3 +++ relightlab/canvas.cpp | 1 - relightlab/cropframe.cpp | 1 - relightlab/directionsview.cpp | 1 - relightlab/helpbutton.cpp | 2 -- relightlab/imageframe.cpp | 1 - relightlab/mainwindow.cpp | 1 - relightlab/normalsplan.cpp | 1 + relightlab/normalstask.cpp | 2 +- relightlab/qlabelbutton.h | 2 -- relightlab/reflectionview.cpp | 1 - relightlab/rtiplan.cpp | 1 + relightlab/rtitask.cpp | 2 -- relightlab/spherepanel.cpp | 1 - relightlab/sphererow.cpp | 1 - relightlab/verifyview.cpp | 1 - src/deepzoom.cpp | 1 - 21 files changed, 57 insertions(+), 27 deletions(-) diff --git a/align/main.cpp b/align/main.cpp index 2a903099..138413b6 100644 --- a/align/main.cpp +++ b/align/main.cpp @@ -6,6 +6,9 @@ #include #include #include +#include + +#include //#include //#include "aligndialog.h" @@ -69,7 +72,7 @@ QPoint align(QImage a, QImage b, int max, double &best_info, double &initial) { best_info = 0.0; double worst_info = 1e20; QPoint best(0, 0); - int side = 2*max_side; + int side = 2*max_side + 1; std::vector values(side*side); for(int dy = -max_side; dy <= max_side; dy++) { for(int dx = -max_side; dx <= max_side; dx++) { @@ -77,6 +80,7 @@ QPoint align(QImage a, QImage b, int max, double &best_info, double &initial) { if(dx == 0 && dy == 0) { initial = info; } + assert(dx+max_side + (dy+max_side)*side < values.size()); values[dx+max_side + (dy+max_side)*side] = info; worst_info = std::min(worst_info, info); //cout << info << " "; @@ -122,7 +126,7 @@ std::vector readOffsetsCSV(const QString &filePath) { firstLine = false; continue; } - QStringList values = line.split(",", Qt::SkipEmptyParts); + QStringList values = line.split(","); if (values.size() >= 2) { offsets.push_back({values[0].trimmed().toInt(), values[1].trimmed().toInt()}); } @@ -243,6 +247,11 @@ int main(int argc, char *argv[]) { samples.push_back(sub); } + /*for(int i = 0; i < samples.size(); i++) { + samples[i].save(QString("/home/ponchio/tmp/aligntest/%1.jpg").arg(i)); + } + exit(0); */ + int reference = 0; vector offsets; QPoint origin(0,0); diff --git a/relightlab/alignpicking.cpp b/relightlab/alignpicking.cpp index 81547bff..6778c1ab 100644 --- a/relightlab/alignpicking.cpp +++ b/relightlab/alignpicking.cpp @@ -92,3 +92,15 @@ void AlignPicking::updateAlignPoint() { align->rect = rect->getRect(); } +void AlignPicking::keyPressEvent(QKeyEvent *event) { + if(event->key() == Qt::Key_Plus) + marker_side += 5; + if(event->key() == Qt::Key_Minus) + marker_side -= 5; + QPointF center = rect->rect.center(); + + rect->rect.setTopLeft(center - QPointF(marker_side, marker_side)); + rect->rect.setBottomRight(center + QPointF(marker_side, marker_side)); + rect->update(); + updateAlignPoint(); +} diff --git a/relightlab/alignpicking.h b/relightlab/alignpicking.h index 0d1b4f95..34ceaff6 100644 --- a/relightlab/alignpicking.h +++ b/relightlab/alignpicking.h @@ -53,6 +53,9 @@ class AlignPicking: public ImageViewer { public slots: void click(QPoint); void updateAlignPoint(); + +protected: + void keyPressEvent(QKeyEvent *event) override; }; #endif diff --git a/relightlab/alignrow.cpp b/relightlab/alignrow.cpp index 6206bc7c..71a7ee63 100644 --- a/relightlab/alignrow.cpp +++ b/relightlab/alignrow.cpp @@ -12,7 +12,6 @@ #include #include #include -#include FindAlignment::FindAlignment(Align *_align, bool update) { align = _align; @@ -68,16 +67,28 @@ AlignRow::AlignRow(Align *_align, QWidget *parent): QWidget(parent) { status_layout->addWidget(progress); status_layout->addStretch(); - QPushButton *edit = new QPushButton(QIcon::fromTheme("edit"), "Edit..."); - columns->addWidget(edit, 1); + QGridLayout *edit_layout = new QGridLayout; + columns->addLayout(edit_layout, 2); + + + edit_layout->setRowStretch(0,1); + + region= new QLabel; + updateRegion(); + edit_layout->addWidget(region, 1, 0, 1, 3); + + edit_button = new QPushButton(QIcon::fromTheme("edit"), "Edit..."); + edit_layout->addWidget(edit_button, 2, 0); verify_button = new QPushButton(QIcon::fromTheme("check"), "Verify..."); verify_button->setEnabled(false); - columns->addWidget(verify_button, 1); - QPushButton *remove = new QPushButton(QIcon::fromTheme("trash-2"), "Delete"); - columns->addWidget(remove, 1); + edit_layout->addWidget(verify_button, 2, 1); + QPushButton *remove_button = new QPushButton(QIcon::fromTheme("trash-2"), "Delete"); + edit_layout->addWidget(remove_button, 2, 2); - connect(edit, SIGNAL(clicked()), this, SLOT(edit())); - connect(remove, SIGNAL(clicked()), this, SLOT(remove())); + edit_layout->setRowStretch(3,1); + + connect(edit_button, SIGNAL(clicked()), this, SLOT(edit())); + connect(remove_button, SIGNAL(clicked()), this, SLOT(remove())); connect(verify_button, SIGNAL(clicked()), this, SLOT(verify())); @@ -89,6 +100,7 @@ void AlignRow::edit() { if(answer == QDialog::Accepted) { position->rect = align->rect; position->update(); + updateRegion(); //reflections->init(); findAlignment(); } @@ -103,6 +115,11 @@ void AlignRow::remove() { emit removeme(this); } +void AlignRow::updateRegion() { + QRectF r = align->rect; + region->setText(QString("Sample region: %1x%2+%3+%4").arg(r.width()).arg(r.height()).arg(r.left()).arg(r.top())); +} + void AlignRow::updateStatus(QString msg, int percent) { status->setText(msg); progress->setValue(percent); diff --git a/relightlab/alignrow.h b/relightlab/alignrow.h index 91bb795b..ab1764a8 100644 --- a/relightlab/alignrow.h +++ b/relightlab/alignrow.h @@ -32,13 +32,16 @@ class AlignRow: public QWidget { QLabel *thumb = nullptr; AlignOverview *position = nullptr; QLabel *status = nullptr; + QLabel *region = nullptr; QProgressBar *progress = nullptr; + QPushButton *edit_button = nullptr; QPushButton *verify_button = nullptr; FindAlignment *find_alignment = nullptr; AlignRow(Align *align, QWidget *parent = nullptr); void findAlignment(bool update = true); void stopFinding(); + void updateRegion(); signals: void removeme(AlignRow *row); diff --git a/relightlab/canvas.cpp b/relightlab/canvas.cpp index ea5d98a5..8761806b 100644 --- a/relightlab/canvas.cpp +++ b/relightlab/canvas.cpp @@ -3,7 +3,6 @@ #include #include #include -#include #include diff --git a/relightlab/cropframe.cpp b/relightlab/cropframe.cpp index 85ce064d..c970add3 100644 --- a/relightlab/cropframe.cpp +++ b/relightlab/cropframe.cpp @@ -11,7 +11,6 @@ #include #include #include -#include CropFrame::CropFrame(QWidget *parent): QFrame(parent) { diff --git a/relightlab/directionsview.cpp b/relightlab/directionsview.cpp index 7b18b3aa..d8e60990 100644 --- a/relightlab/directionsview.cpp +++ b/relightlab/directionsview.cpp @@ -2,7 +2,6 @@ #include "../src/dome.h" #include -#include using namespace Eigen; diff --git a/relightlab/helpbutton.cpp b/relightlab/helpbutton.cpp index 037d01b0..054778ed 100644 --- a/relightlab/helpbutton.cpp +++ b/relightlab/helpbutton.cpp @@ -18,8 +18,6 @@ #include #include -#include - HelpDialog* HelpDialog::m_instance = nullptr; // Initialize static instance to nullptr diff --git a/relightlab/imageframe.cpp b/relightlab/imageframe.cpp index 638a18c8..e55769be 100644 --- a/relightlab/imageframe.cpp +++ b/relightlab/imageframe.cpp @@ -5,7 +5,6 @@ #include #include #include -#include #include "relightapp.h" #include "imageframe.h" diff --git a/relightlab/mainwindow.cpp b/relightlab/mainwindow.cpp index 3177b6cd..a20fdaf6 100644 --- a/relightlab/mainwindow.cpp +++ b/relightlab/mainwindow.cpp @@ -19,7 +19,6 @@ #include "helpbutton.h" #include -#include #include #include diff --git a/relightlab/normalsplan.cpp b/relightlab/normalsplan.cpp index 0a0b14da..79d41063 100644 --- a/relightlab/normalsplan.cpp +++ b/relightlab/normalsplan.cpp @@ -6,6 +6,7 @@ #include #include #include +#include #include #include #include diff --git a/relightlab/normalstask.cpp b/relightlab/normalstask.cpp index b140c5c4..ba2013f2 100644 --- a/relightlab/normalstask.cpp +++ b/relightlab/normalstask.cpp @@ -17,8 +17,8 @@ #include #include -#include #include +#include #include #include #include diff --git a/relightlab/qlabelbutton.h b/relightlab/qlabelbutton.h index 331321f0..7652fec2 100644 --- a/relightlab/qlabelbutton.h +++ b/relightlab/qlabelbutton.h @@ -2,8 +2,6 @@ #define QLABELBUTTON_H #include -#include -#include class QLabelButton: public QCommandLinkButton { public: diff --git a/relightlab/reflectionview.cpp b/relightlab/reflectionview.cpp index 81455b61..4ef4e7dd 100644 --- a/relightlab/reflectionview.cpp +++ b/relightlab/reflectionview.cpp @@ -5,7 +5,6 @@ #include #include #include -#include MarkerOverview::MarkerOverview(int _height, QWidget *parent): QGraphicsView(parent) { height = _height; diff --git a/relightlab/rtiplan.cpp b/relightlab/rtiplan.cpp index 6b2b2376..fa05ddfe 100644 --- a/relightlab/rtiplan.cpp +++ b/relightlab/rtiplan.cpp @@ -13,6 +13,7 @@ #include #include #include +#include #include #include diff --git a/relightlab/rtitask.cpp b/relightlab/rtitask.cpp index 29fd5360..54d65008 100644 --- a/relightlab/rtitask.cpp +++ b/relightlab/rtitask.cpp @@ -89,8 +89,6 @@ void RtiTask::run() { imageset.initFromDome(project.dome); //lights after images imageset.setCrop(crop, project.offsets); - qDebug() << "offsets: " << project.offsets; - //TODO too many crop locations! if(!crop.isNull()) { builder->crop[0] = imageset.left; diff --git a/relightlab/spherepanel.cpp b/relightlab/spherepanel.cpp index 54cedae5..51561472 100644 --- a/relightlab/spherepanel.cpp +++ b/relightlab/spherepanel.cpp @@ -8,7 +8,6 @@ #include #include #include -#include #include diff --git a/relightlab/sphererow.cpp b/relightlab/sphererow.cpp index 52f5ca1b..c95ff108 100644 --- a/relightlab/sphererow.cpp +++ b/relightlab/sphererow.cpp @@ -11,7 +11,6 @@ #include #include #include -#include DetectHighlights::DetectHighlights(Sphere *_sphere, bool update) { sphere = _sphere; diff --git a/relightlab/verifyview.cpp b/relightlab/verifyview.cpp index e1c4b0cf..2a74df78 100644 --- a/relightlab/verifyview.cpp +++ b/relightlab/verifyview.cpp @@ -8,7 +8,6 @@ #include #include #include -#include #include diff --git a/src/deepzoom.cpp b/src/deepzoom.cpp index 9b9f32b9..25e5284c 100644 --- a/src/deepzoom.cpp +++ b/src/deepzoom.cpp @@ -3,7 +3,6 @@ #include "jpeg_decoder.h" #include -#include #include #include