RasterProcessTool/Toolbox/SimulationSARTool/SimulationSAR/QSimulationBPImage.cpp

139 lines
4.2 KiB
C++
Raw Normal View History

2024-11-27 05:10:40 +00:00
#include "QSimulationBPImage.h"
#include <QFileDialog>
#include <QMessageBox>
#include "TBPImageAlgCls.h"
#include "EchoDataFormat.h"
#include <boost/thread.hpp>
#include <thread>
2025-02-07 11:47:41 +00:00
#include "ui_QSimulationBPImage.h"
2024-11-27 05:10:40 +00:00
QSimulationBPImage::QSimulationBPImage(QWidget *parent)
2025-02-24 10:58:50 +00:00
: QDialog(parent),ui(new Ui::QSimulationBPImageClass)
2024-11-27 05:10:40 +00:00
{
2025-02-07 11:47:41 +00:00
ui->setupUi(this);
2024-11-27 05:10:40 +00:00
2025-02-07 11:47:41 +00:00
QObject::connect(ui->pushButtonEchoSelect, SIGNAL(clicked()), this, SLOT(onpushButtonEchoSelectClicked()));
QObject::connect(ui->pushButtonImageSelect, SIGNAL(clicked()), this, SLOT(onpushButtonImageSelectClicked()));
2025-03-03 03:49:26 +00:00
QObject::connect(ui->GridNetBtn, SIGNAL(clicked()), this, SLOT(onpushButtonGridNetSelectClicked()));
2025-02-07 11:47:41 +00:00
QObject::connect(ui->buttonBox, SIGNAL(accepted()), this, SLOT(onbtnaccepted()));
QObject::connect(ui->buttonBox, SIGNAL(rejected()), this, SLOT(onbtnrejected()));
2025-03-03 03:44:03 +00:00
QObject::connect(ui->checkBox, SIGNAL(stateChanged(int)), this, SLOT(oncheckboxTrigged(int)));
2024-11-27 05:10:40 +00:00
}
QSimulationBPImage::~QSimulationBPImage()
{}
void QSimulationBPImage::onpushButtonEchoSelectClicked()
{
QString fileNames = QFileDialog::getOpenFileName(
this, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
tr(u8"ѡ<EFBFBD><EFBFBD>Ӱ<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>"), // <20><><EFBFBD><EFBFBD>
QString(), // Ĭ<><C4AC>·<EFBFBD><C2B7>
tr(u8"xml Files (*.xml);;All Files (*)") // <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
);
// <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
if (!fileNames.isEmpty()) {
QString message = "ѡ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD>У<EFBFBD>\n";
2025-02-07 11:47:41 +00:00
this->ui->lineEditEchoPath->setText(fileNames);
2024-11-27 05:10:40 +00:00
}
else {
QMessageBox::information(this, tr(u8"û<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>"), tr(u8"û<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>"));
}
}
void QSimulationBPImage::onpushButtonImageSelectClicked()
{
QString fileNames = QFileDialog::getSaveFileName(
this, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
tr(u8"ѡ<EFBFBD><EFBFBD>Ӱ<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>"), // <20><><EFBFBD><EFBFBD>
QString(), // Ĭ<><C4AC>·<EFBFBD><C2B7>
tr(u8"All Files(*)") // <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
);
// <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
if (!fileNames.isEmpty()) {
2025-02-07 11:47:41 +00:00
this->ui->lineEditImagePath->setText(fileNames);
2024-11-27 05:10:40 +00:00
}
else {
QMessageBox::information(this, tr(u8"û<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>"), tr(u8"û<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>"));
}
}
void QSimulationBPImage::onbtnaccepted()
{
2025-02-07 11:47:41 +00:00
QString echofile = this->ui->lineEditEchoPath->text().trimmed();
QString outImageFolder = getParantFromPath(this->ui->lineEditImagePath->text().trimmed());
QString imagename = getFileNameFromPath(this->ui->lineEditImagePath->text().trimmed());
2024-11-27 05:10:40 +00:00
std::shared_ptr<EchoL0Dataset> echoL0ds(new EchoL0Dataset);
echoL0ds->Open(echofile);
std::shared_ptr< SARSimulationImageL1Dataset> imagL1(new SARSimulationImageL1Dataset);
imagL1->setCenterAngle(echoL0ds->getCenterAngle());
imagL1->setCenterFreq(echoL0ds->getCenterFreq());
imagL1->setNearRange(echoL0ds->getNearRange());
imagL1->setRefRange((echoL0ds->getNearRange() + echoL0ds->getFarRange()) / 2);
imagL1->setFarRange(echoL0ds->getFarRange());
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());
}
2024-11-27 05:10:40 +00:00
TBPImageAlgCls TBPimag;
TBPimag.setEchoL0(echoL0ds);
TBPimag.setImageL1(imagL1);
long cpucore_num = std::thread::hardware_concurrency();
TBPimag.setGPU(true);
2025-03-03 03:44:03 +00:00
if (ui->checkBox->isChecked()) {
TBPimag.ProcessWithGridNet(cpucore_num,ui->lineEdit->text().trimmed());
}
else {
TBPimag.Process(cpucore_num);
}
QMessageBox::information(this,u8"<EFBFBD><EFBFBD><EFBFBD><EFBFBD>",u8"<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
2024-11-27 05:10:40 +00:00
}
void QSimulationBPImage::onbtnrejected()
{
this->close();
}
2025-03-03 03:44:03 +00:00
void QSimulationBPImage::oncheckboxTrigged(int)
{
this->ui->lineEdit->setEnabled(this->ui->checkBox->isChecked());
this->ui->GridNetBtn->setEnabled(this->ui->checkBox->isChecked());
}
void QSimulationBPImage::onpushButtonGridNetSelectClicked( )
{
QString fileNames = QFileDialog::getOpenFileName(
2025-03-03 03:44:03 +00:00
this, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
tr(u8"ѡ<EFBFBD><EFBFBD>Ӱ<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>"), // <20><><EFBFBD><EFBFBD>
QString(), // Ĭ<><C4AC>·<EFBFBD><C2B7>
tr(u8"All Files(*);;dat(*.dat);;tif(*.tif);;tiff(*.tiff)") // <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
);
// <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
if (!fileNames.isEmpty()) {
this->ui->lineEdit->setText(fileNames);
}
else {
QMessageBox::information(this, tr(u8"û<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>"), tr(u8"û<EFBFBD><EFBFBD>ѡ<EFBFBD><EFBFBD><EFBFBD>κ<EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>"));
}
}