From 95f7bef2b52f6d5c9223dc883ba0c59a093919a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E5=A2=9E=E8=BE=89?= <3045316072@qq.com> Date: Tue, 8 Apr 2025 11:01:52 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=A4=9A=E7=BA=A7=E4=BA=A7?= =?UTF-8?q?=E5=93=81=E7=94=9F=E4=BA=A7=E5=B7=A5=E5=85=B7-=E5=BE=85?= =?UTF-8?q?=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SARImage/ImageNetOperator.cpp | 2 +- .../QSimulationBPImageMultiProduction.cpp | 138 ++++++++++++------ .../QSimulationBPImageMultiProduction.h | 9 +- .../QSimulationBPImageMultiProduction.ui | 125 ++++++++++++++-- .../SimulationSARTool/SimulationSARTool.cpp | 22 ++- Toolbox/SimulationSARTool/SimulationSARTool.h | 9 ++ 6 files changed, 233 insertions(+), 72 deletions(-) diff --git a/Toolbox/SimulationSARTool/SARImage/ImageNetOperator.cpp b/Toolbox/SimulationSARTool/SARImage/ImageNetOperator.cpp index 4f013c4..f75c122 100644 --- a/Toolbox/SimulationSARTool/SARImage/ImageNetOperator.cpp +++ b/Toolbox/SimulationSARTool/SARImage/ImageNetOperator.cpp @@ -801,7 +801,7 @@ int ResampleEChoDataFromGeoEcho(QString L2echodataPath, QString RangeLooktablePa for (long i = 0; i < imgheight; i++) { - //printf("\rprocess:%f precent\t\t\t",i*100.0/imgheight); + printf("\rGEC: process:%f precent\t\t\t",i*100.0/imgheight); for (long j = 0; j < imgwidth; j++) { double lon = imglonArr(i, j); double lat = imglatArr(i, j); diff --git a/Toolbox/SimulationSARTool/SARImage/QSimulationBPImageMultiProduction.cpp b/Toolbox/SimulationSARTool/SARImage/QSimulationBPImageMultiProduction.cpp index aade224..6c7a5ab 100644 --- a/Toolbox/SimulationSARTool/SARImage/QSimulationBPImageMultiProduction.cpp +++ b/Toolbox/SimulationSARTool/SARImage/QSimulationBPImageMultiProduction.cpp @@ -6,22 +6,21 @@ #include #include #include "ui_QSimulationBPImageMultiProduction.h" - +#include "ImageNetOperator.h" QSimulationBPImageMultiProduction::QSimulationBPImageMultiProduction(QWidget *parent) : QDialog(parent),ui(new Ui::QSimulationBPImageMultiProductionClass) { ui->setupUi(this); - ui->checkBox->setEnabled(false); - ui->checkBox->setCheckable(true); - ui->checkBox->setChecked(true); QObject::connect(ui->pushButtonEchoSelect, SIGNAL(clicked()), this, SLOT(onpushButtonEchoSelectClicked())); - QObject::connect(ui->pushButtonImageSelect, SIGNAL(clicked()), this, SLOT(onpushButtonImageSelectClicked())); - QObject::connect(ui->GridNetBtn, SIGNAL(clicked()), this, SLOT(onpushButtonGridNetSelectClicked())); + QObject::connect(ui->LookTableBtn, SIGNAL(clicked()), this, SLOT(onpushButtonLookTableBtnClicked())); + QObject::connect(ui->GridNetBtn, SIGNAL(clicked()), this, SLOT(onpushButtonGridNetBtnSelectClicked())); + QObject::connect(ui->L1ASelectBtn, SIGNAL(clicked()), this, SLOT(onpushButtonL1ASelectBtnClicked())); + QObject::connect(ui->L2SelectSelect, SIGNAL(clicked()), this, SLOT(onpushButtonL2SelectSelectClicked())); QObject::connect(ui->buttonBox, SIGNAL(accepted()), this, SLOT(onbtnaccepted())); QObject::connect(ui->buttonBox, SIGNAL(rejected()), this, SLOT(onbtnrejected())); - QObject::connect(ui->checkBox, SIGNAL(stateChanged(int)), this, SLOT(oncheckboxTrigged(int))); + @@ -50,7 +49,44 @@ void QSimulationBPImageMultiProduction::onpushButtonEchoSelectClicked() } } -void QSimulationBPImageMultiProduction::onpushButtonImageSelectClicked() + +void QSimulationBPImageMultiProduction::onpushButtonLookTableBtnClicked() +{ + QString fileNames = QFileDialog::getOpenFileName( + this, // 父窗口 + tr(u8"选择查找表文件"), // 标题 + QString(), // 默认路径 + tr(u8"All Files(*)") // 文件过滤器 + ); + + // 如果用户选择了文件 + if (!fileNames.isEmpty()) { + this->ui->lineEditLookTablePath->setText(fileNames); + } + else { + QMessageBox::information(this, tr(u8"没有选择文件"), tr(u8"没有选择任何文件。")); + } +} + +void QSimulationBPImageMultiProduction::onpushButtonGridNetBtnSelectClicked() +{ + QString fileNames = QFileDialog::getOpenFileName( + this, // 父窗口 + tr(u8"选择成像网格文件"), // 标题 + QString(), // 默认路径 + tr(u8"All Files(*)") // 文件过滤器 + ); + + // 如果用户选择了文件 + if (!fileNames.isEmpty()) { + this->ui->lineEditImageNetPath->setText(fileNames); + } + else { + QMessageBox::information(this, tr(u8"没有选择文件"), tr(u8"没有选择任何文件。")); + } +} + +void QSimulationBPImageMultiProduction::onpushButtonL1ASelectBtnClicked() { QString fileNames = QFileDialog::getSaveFileName( this, // 父窗口 @@ -61,7 +97,25 @@ void QSimulationBPImageMultiProduction::onpushButtonImageSelectClicked() // 如果用户选择了文件 if (!fileNames.isEmpty()) { - this->ui->lineEditImagePath->setText(fileNames); + this->ui->lineEditL1AProductionPath->setText(fileNames); + } + else { + QMessageBox::information(this, tr(u8"没有选择文件"), tr(u8"没有选择任何文件。")); + } +} + +void QSimulationBPImageMultiProduction::onpushButtonL2SelectSelectClicked() +{ + QString fileNames = QFileDialog::getSaveFileName( + this, // 父窗口 + tr(u8"选择影像文件"), // 标题 + QString(), // 默认路径 + tr(u8"All Files(*)") // 文件过滤器 + ); + + // 如果用户选择了文件 + if (!fileNames.isEmpty()) { + this->ui->lineEditL2ProductionPath->setText(fileNames); } else { QMessageBox::information(this, tr(u8"没有选择文件"), tr(u8"没有选择任何文件。")); @@ -70,10 +124,22 @@ void QSimulationBPImageMultiProduction::onpushButtonImageSelectClicked() void QSimulationBPImageMultiProduction::onbtnaccepted() { + QString L1ADataPath = this->ui->lineEditL1AProductionPath->text().trimmed(); + QString L2DataPath = this->ui->lineEditL2ProductionPath->text().trimmed(); + QString looktablePath = this->ui->lineEditLookTablePath->text().trimmed(); + QString imgNetPath = this->ui->lineEditImageNetPath->text().trimmed(); + QString echoDataPath = this->ui->lineEditEchoPath->text().trimmed(); + + + + + + + this->hide(); - QString echofile = this->ui->lineEditEchoPath->text().trimmed(); - QString outImageFolder = getParantFromPath(this->ui->lineEditImagePath->text().trimmed()); - QString imagename = getFileNameFromPath(this->ui->lineEditImagePath->text().trimmed()); + QString echofile = echoDataPath; + QString outImageFolder = getParantFromPath(L2DataPath); + QString imagename = getFileNameFromPath(L2DataPath); std::shared_ptr echoL0ds(new EchoL0Dataset); echoL0ds->Open(echofile); @@ -86,53 +152,31 @@ void QSimulationBPImageMultiProduction::onbtnaccepted() imagL1->setFs(echoL0ds->getFs()); imagL1->setLookSide(echoL0ds->getLookSide()); - if (ui->checkBox->isChecked()) { - gdalImage imgxyzimg(ui->lineEdit->text().trimmed()); - imagL1->OpenOrNew(outImageFolder, imagename, imgxyzimg.height, imgxyzimg.width); - } - else { - imagL1->OpenOrNew(outImageFolder, imagename, echoL0ds->getPluseCount(), echoL0ds->getPlusePoints()); - } - + gdalImage imgxyzimg(imgNetPath); + imagL1->OpenOrNew(outImageFolder, imagename, imgxyzimg.height, imgxyzimg.width); + qDebug() << u8"成像中"; TBPImageAlgCls TBPimag; TBPimag.setEchoL0(echoL0ds); TBPimag.setImageL1(imagL1); long cpucore_num = std::thread::hardware_concurrency(); TBPimag.setGPU(true); - TBPimag.ProcessWithGridNet(cpucore_num,ui->lineEdit->text().trimmed()); - + TBPimag.ProcessWithGridNet(cpucore_num, imgNetPath); + qDebug() << u8"系统几何校正中"; + + + ResampleEChoDataFromGeoEcho(imagL1->getImageRasterPath(), looktablePath, L1ADataPath); + this->show(); + QMessageBox::information(this,u8"成像",u8"成像结束"); + + } void QSimulationBPImageMultiProduction::onbtnrejected() { this->close(); } - -void QSimulationBPImageMultiProduction::oncheckboxTrigged(int) -{ - this->ui->lineEdit->setEnabled(this->ui->checkBox->isChecked()); - this->ui->GridNetBtn->setEnabled(this->ui->checkBox->isChecked()); - -} - -void QSimulationBPImageMultiProduction::onpushButtonGridNetSelectClicked( ) -{ - QString fileNames = QFileDialog::getOpenFileName( - this, // 父窗口 - tr(u8"选择影像文件"), // 标题 - QString(), // 默认路径 - tr(u8"All Files(*);;dat(*.dat);;tif(*.tif);;tiff(*.tiff)") // 文件过滤器 - ); - - // 如果用户选择了文件 - if (!fileNames.isEmpty()) { - this->ui->lineEdit->setText(fileNames); - } - else { - QMessageBox::information(this, tr(u8"没有选择文件"), tr(u8"没有选择任何文件。")); - } -} + \ No newline at end of file diff --git a/Toolbox/SimulationSARTool/SARImage/QSimulationBPImageMultiProduction.h b/Toolbox/SimulationSARTool/SARImage/QSimulationBPImageMultiProduction.h index dc84ee7..45222a6 100644 --- a/Toolbox/SimulationSARTool/SARImage/QSimulationBPImageMultiProduction.h +++ b/Toolbox/SimulationSARTool/SARImage/QSimulationBPImageMultiProduction.h @@ -19,12 +19,13 @@ public: public slots: void onpushButtonEchoSelectClicked(); - void onpushButtonImageSelectClicked(); + void onpushButtonLookTableBtnClicked(); + void onpushButtonGridNetBtnSelectClicked(); + void onpushButtonL1ASelectBtnClicked(); + void onpushButtonL2SelectSelectClicked(); void onbtnaccepted(); void onbtnrejected(); - - void oncheckboxTrigged(int); - void onpushButtonGridNetSelectClicked( ); + private: Ui::QSimulationBPImageMultiProductionClass* ui; diff --git a/Toolbox/SimulationSARTool/SARImage/QSimulationBPImageMultiProduction.ui b/Toolbox/SimulationSARTool/SARImage/QSimulationBPImageMultiProduction.ui index a3e110a..fd5d9fd 100644 --- a/Toolbox/SimulationSARTool/SARImage/QSimulationBPImageMultiProduction.ui +++ b/Toolbox/SimulationSARTool/SARImage/QSimulationBPImageMultiProduction.ui @@ -32,7 +32,7 @@ - 鍥炴尝鍦板潃锛 + 鍥炴尝鍦板潃锛 @@ -75,23 +75,14 @@ - - - - 0 - 30 - - + - 鍥惧儚缃戞牸 - - - true + 鎴愬儚鍖哄煙缃戞牸锛 - + true @@ -125,6 +116,108 @@ + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + + + 鏌ユ壘琛細 + + + + + + + true + + + + 0 + 30 + + + + D:\Programme\vs2022\RasterMergeTest\simulationData\demdataset\demxyz.bin + + + + + + + true + + + + 0 + 30 + + + + 閫夋嫨 + + + + + + + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + + + 1绾т骇鍝侊細 + + + + + + + true + + + + 0 + 30 + + + + D:\Programme\vs2022\RasterMergeTest\simulationData\demdataset\demxyz.bin + + + + + + + true + + + + 0 + 30 + + + + 閫夋嫨 + + + + + + @@ -143,12 +236,12 @@ - 浠跨湡鍥惧儚锛 + 2绾т骇鍝侊細 - + 0 @@ -161,7 +254,7 @@ - + 0 diff --git a/Toolbox/SimulationSARTool/SimulationSARTool.cpp b/Toolbox/SimulationSARTool/SimulationSARTool.cpp index a9b9d11..8361b9d 100644 --- a/Toolbox/SimulationSARTool/SimulationSARTool.cpp +++ b/Toolbox/SimulationSARTool/SimulationSARTool.cpp @@ -12,7 +12,7 @@ #include "QCreateInSARImagePlaneXYZRDialog.h" #include "QLookTableResampleFromWGS84ToRange.h" #include "QSARSimulationComplexEchoDataDialog.h" - +#include "QSimulationBPImageMultiProduction.h" SARSimlulationRFPCToolButton::SARSimlulationRFPCToolButton(QWidget* parent) { @@ -240,9 +240,6 @@ void QLookTableResampleFromWGS84ToRangeToolButton::run() dialog->show(); } - - - //QSARSimulationComplexEchoDataDialog QSARSimulationComplexEchoDataDialogToolButton::QSARSimulationComplexEchoDataDialogToolButton(QWidget* parent) @@ -261,3 +258,20 @@ void QSARSimulationComplexEchoDataDialogToolButton::run() QSARSimulationComplexEchoDataDialog* dialog = new QSARSimulationComplexEchoDataDialog; dialog->show(); } + +QSimulationBPImageMultiProductionToolButton::QSimulationBPImageMultiProductionToolButton(QWidget* parent) +{ + this->toolPath = QVector(0); + this->toolPath.push_back(u8"成像工具库"); + this->toolname = QString(u8"1-2级产品生产"); +} + +QSimulationBPImageMultiProductionToolButton::~QSimulationBPImageMultiProductionToolButton() +{ +} + +void QSimulationBPImageMultiProductionToolButton::run() +{ + QSimulationBPImageMultiProduction* dialog = new QSimulationBPImageMultiProduction; + dialog->show(); +} diff --git a/Toolbox/SimulationSARTool/SimulationSARTool.h b/Toolbox/SimulationSARTool/SimulationSARTool.h index 1a6212c..011b236 100644 --- a/Toolbox/SimulationSARTool/SimulationSARTool.h +++ b/Toolbox/SimulationSARTool/SimulationSARTool.h @@ -165,4 +165,13 @@ public: }; +class SIMULATIONSARTOOL_EXPORT QSimulationBPImageMultiProductionToolButton : public QToolAbstract { + Q_OBJECT +public: + QSimulationBPImageMultiProductionToolButton(QWidget* parent = nullptr); + ~QSimulationBPImageMultiProductionToolButton(); +public: + virtual void run() override; + +};