优化2种高光谱图像显示方式
This commit is contained in:
tangchao0503
2026-08-28 09:07:42 +08:00
parent 7452748324
commit 9307947ed0
5 changed files with 24 additions and 14 deletions

View File

@ -11,7 +11,7 @@ const QString AppSettings::kDefaultDepthCameraDataFolder = QString();
const double AppSettings::kDefaultScanSpeed = 1.0; const double AppSettings::kDefaultScanSpeed = 1.0;
const double AppSettings::kDefaultReturnSpeed = 5.0; const double AppSettings::kDefaultReturnSpeed = 5.0;
const int AppSettings::kDefaultGonggaShanRecordPort = 666; const int AppSettings::kDefaultGonggaShanRecordPort = 666;
const QString AppSettings::kDefaultHyperimgDisplayMode = QStringLiteral("full"); const AppSettings::HyperimgDisplayMode AppSettings::kDefaultHyperimgDisplayMode = HyperimgDisplayMode::Waterfall;
AppSettings::AppSettings() AppSettings::AppSettings()
: m_settings(QSettings::IniFormat, QSettings::UserScope, : m_settings(QSettings::IniFormat, QSettings::UserScope,
@ -150,12 +150,14 @@ void AppSettings::setGonggaShanRecordPort(int value)
m_settings.setValue("GonggaShanRecordCtl/Port", value); m_settings.setValue("GonggaShanRecordCtl/Port", value);
} }
QString AppSettings::hyperimgDisplayMode() const AppSettings::HyperimgDisplayMode AppSettings::hyperimgDisplayMode() const
{ {
return m_settings.value("Display/HyperimgDisplayMode", kDefaultHyperimgDisplayMode).toString(); return static_cast<HyperimgDisplayMode>(
m_settings.value("Display/HyperimgDisplayMode",
static_cast<int>(kDefaultHyperimgDisplayMode)).toInt());
} }
void AppSettings::setHyperimgDisplayMode(const QString& mode) void AppSettings::setHyperimgDisplayMode(HyperimgDisplayMode mode)
{ {
m_settings.setValue("Display/HyperimgDisplayMode", mode); m_settings.setValue("Display/HyperimgDisplayMode", static_cast<int>(mode));
} }

View File

@ -50,9 +50,12 @@ public:
int gonggaShanRecordPort() const; int gonggaShanRecordPort() const;
void setGonggaShanRecordPort(int value); void setGonggaShanRecordPort(int value);
// 图像显示模式full / waterfall // 图像显示模式枚举
QString hyperimgDisplayMode() const; enum class HyperimgDisplayMode { Full, Waterfall };
void setHyperimgDisplayMode(const QString& mode);
// 图像显示模式
HyperimgDisplayMode hyperimgDisplayMode() const;
void setHyperimgDisplayMode(HyperimgDisplayMode mode);
// 在此处添加更多参数的 getter/setter ... // 在此处添加更多参数的 getter/setter ...
private: private:
@ -73,5 +76,5 @@ private:
static const double kDefaultScanSpeed; static const double kDefaultScanSpeed;
static const double kDefaultReturnSpeed; static const double kDefaultReturnSpeed;
static const int kDefaultGonggaShanRecordPort; static const int kDefaultGonggaShanRecordPort;
static const QString kDefaultHyperimgDisplayMode; static const HyperimgDisplayMode kDefaultHyperimgDisplayMode;
}; };

View File

@ -79,11 +79,11 @@ void Mapcavas::SetImage(QPixmap *image)
m_GraphicsPixmapItemHandle->setPixmap(*image); m_GraphicsPixmapItemHandle->setPixmap(*image);
} }
if (m_displayMode =="full") if (m_displayMode == AppSettings::HyperimgDisplayMode::Full)
{ {
ensureSceneVisible(); ensureSceneVisible();
} }
else if (m_displayMode == "waterfall") else if (m_displayMode == AppSettings::HyperimgDisplayMode::Waterfall)
{ {
ensureWaterfallVisible(); ensureWaterfallVisible();
} }

View File

@ -80,7 +80,7 @@ private:
QGraphicsLineItem* m_hLine = nullptr; // horizontal line QGraphicsLineItem* m_hLine = nullptr; // horizontal line
QGraphicsLineItem* m_vLine = nullptr; // vertical line QGraphicsLineItem* m_vLine = nullptr; // vertical line
QString m_displayMode; AppSettings::HyperimgDisplayMode m_displayMode;
signals: signals:
void leftMouseButtonPressed(int, int, QVector<double>, QVector<double>); void leftMouseButtonPressed(int, int, QVector<double>, QVector<double>);

View File

@ -10,6 +10,7 @@ setWindow::setWindow(QWidget* parent)
setWindowFlags(Qt::FramelessWindowHint); setWindowFlags(Qt::FramelessWindowHint);
//顺序不能更改和AppSettings::HyperimgDisplayMode一致
ui.hyperimgDisplayMode_comboBox->addItem("full"); ui.hyperimgDisplayMode_comboBox->addItem("full");
ui.hyperimgDisplayMode_comboBox->addItem("waterfall"); ui.hyperimgDisplayMode_comboBox->addItem("waterfall");
@ -28,13 +29,17 @@ void setWindow::loadSettings()
{ {
ui.dataFolderLineEdit->setText(AppSettings::instance().dataFolder()); ui.dataFolderLineEdit->setText(AppSettings::instance().dataFolder());
ui.hyperimgDisplayMode_comboBox->setCurrentText(AppSettings::instance().hyperimgDisplayMode()); ui.hyperimgDisplayMode_comboBox->setCurrentIndex(
static_cast<int>(AppSettings::instance().hyperimgDisplayMode()));
} }
void setWindow::saveSettings() void setWindow::saveSettings()
{ {
AppSettings::instance().setDataFolder(ui.dataFolderLineEdit->text()); AppSettings::instance().setDataFolder(ui.dataFolderLineEdit->text());
AppSettings::instance().setHyperimgDisplayMode(ui.hyperimgDisplayMode_comboBox->currentText()); AppSettings::instance().setHyperimgDisplayMode(
ui.hyperimgDisplayMode_comboBox->currentIndex() == 0
? AppSettings::HyperimgDisplayMode::Full
: AppSettings::HyperimgDisplayMode::Waterfall);
} }
void setWindow::onSelectDataFolder() void setWindow::onSelectDataFolder()