优化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::kDefaultReturnSpeed = 5.0;
const int AppSettings::kDefaultGonggaShanRecordPort = 666;
const QString AppSettings::kDefaultHyperimgDisplayMode = QStringLiteral("full");
const AppSettings::HyperimgDisplayMode AppSettings::kDefaultHyperimgDisplayMode = HyperimgDisplayMode::Waterfall;
AppSettings::AppSettings()
: m_settings(QSettings::IniFormat, QSettings::UserScope,
@ -150,12 +150,14 @@ void AppSettings::setGonggaShanRecordPort(int 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;
void setGonggaShanRecordPort(int value);
// 图像显示模式full / waterfall
QString hyperimgDisplayMode() const;
void setHyperimgDisplayMode(const QString& mode);
// 图像显示模式枚举
enum class HyperimgDisplayMode { Full, Waterfall };
// 图像显示模式
HyperimgDisplayMode hyperimgDisplayMode() const;
void setHyperimgDisplayMode(HyperimgDisplayMode mode);
// 在此处添加更多参数的 getter/setter ...
private:
@ -73,5 +76,5 @@ private:
static const double kDefaultScanSpeed;
static const double kDefaultReturnSpeed;
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);
}
if (m_displayMode =="full")
if (m_displayMode == AppSettings::HyperimgDisplayMode::Full)
{
ensureSceneVisible();
}
else if (m_displayMode == "waterfall")
else if (m_displayMode == AppSettings::HyperimgDisplayMode::Waterfall)
{
ensureWaterfallVisible();
}

View File

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

View File

@ -10,6 +10,7 @@ setWindow::setWindow(QWidget* parent)
setWindowFlags(Qt::FramelessWindowHint);
//顺序不能更改和AppSettings::HyperimgDisplayMode一致
ui.hyperimgDisplayMode_comboBox->addItem("full");
ui.hyperimgDisplayMode_comboBox->addItem("waterfall");
@ -28,13 +29,17 @@ void setWindow::loadSettings()
{
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()
{
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()