2025-03-11 05:42:07 +00:00
|
|
|
|
#include <QFile>
|
2025-03-11 04:59:13 +00:00
|
|
|
|
#include "QtLinearToIntenisityDialog.h"
|
2025-03-11 05:42:07 +00:00
|
|
|
|
#include <QtWidgets>
|
|
|
|
|
#include "ImageOperatorBase.h"
|
|
|
|
|
#include "ui_QtLinearToIntenisityDialog.h"
|
2025-03-11 04:59:13 +00:00
|
|
|
|
|
2025-03-11 05:42:07 +00:00
|
|
|
|
|
|
|
|
|
QtLinearToIntenisityDialog::QtLinearToIntenisityDialog(QWidget* parent)
|
|
|
|
|
: QDialog(parent), ui(new Ui::QtLinearToIntenisityDialogClass)
|
2025-03-11 04:59:13 +00:00
|
|
|
|
{
|
2025-03-11 05:42:07 +00:00
|
|
|
|
ui->setupUi(this);
|
|
|
|
|
|
|
|
|
|
connect(ui->pushButtonInRaster, SIGNAL(clicked(bool)), this, SLOT(On_pushButtonInRasterTriggled()));
|
|
|
|
|
connect(ui->pushButtonSave, SIGNAL(clicked(bool)), this, SLOT(On_pushButtonSaveTriggled()));
|
|
|
|
|
connect(ui->radioButtonIntenisty, SIGNAL(clicked(bool)), this, SLOT(On_radioButtonIntenistyTriggled()));
|
|
|
|
|
connect(ui->radioButtonAmp, SIGNAL(clicked(bool)), this, SLOT(On_radioButtonAmpTriggled()));
|
|
|
|
|
connect(ui->buttonBox, SIGNAL(accepted()), this, SLOT(onbtnaccepted()));
|
|
|
|
|
connect(ui->buttonBox, SIGNAL(rejected()), this, SLOT(onbtnrejected()));
|
2025-03-11 04:59:13 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
QtLinearToIntenisityDialog::~QtLinearToIntenisityDialog()
|
2025-03-11 05:42:07 +00:00
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void QtLinearToIntenisityDialog::On_pushButtonInRasterTriggled()
|
|
|
|
|
{
|
|
|
|
|
QString fileName = QFileDialog::getOpenFileName(
|
|
|
|
|
this, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
tr(u8"ѡ<EFBFBD><EFBFBD>Ӱ<EFBFBD><EFBFBD>"), // <20><><EFBFBD><EFBFBD>
|
|
|
|
|
QString(), // Ĭ<><C4AC>·<EFBFBD><C2B7>
|
|
|
|
|
tr(u8"tif Files (*.tif);;data Files (*.data);;bin Files (*.bin);;All Files (*)") // <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
|
|
|
|
|
if (!fileName.isEmpty()) {
|
|
|
|
|
this->ui->InputRasterLineEdit->setText(fileName);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
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 QtLinearToIntenisityDialog::On_pushButtonSaveTriggled()
|
|
|
|
|
{
|
|
|
|
|
QString fileName = QFileDialog::getSaveFileName(
|
|
|
|
|
this, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
tr(u8"ѡ<EFBFBD><EFBFBD>Ӱ<EFBFBD><EFBFBD>"), // <20><><EFBFBD><EFBFBD>
|
|
|
|
|
QString(), // Ĭ<><C4AC>·<EFBFBD><C2B7>
|
|
|
|
|
tr(u8"tif Files (*.tif);;data Files (*.data);;bin Files (*.bin);;All Files (*)") // <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>
|
|
|
|
|
if (!fileName.isEmpty()) {
|
|
|
|
|
this->ui->OutputRasterLineEdit->setText(fileName);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
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 QtLinearToIntenisityDialog::On_radioButtonIntenistyTriggled()
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void QtLinearToIntenisityDialog::On_radioButtonAmpTriggled()
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void QtLinearToIntenisityDialog::onbtnaccepted()
|
|
|
|
|
{
|
|
|
|
|
this->hide();
|
|
|
|
|
QString inputRaster = this->ui->InputRasterLineEdit->text();
|
|
|
|
|
QString outputRaster = this->ui->OutputRasterLineEdit->text();
|
|
|
|
|
// <20><><EFBFBD><EFBFBD> inputRaster <20><> outputRaster,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ھ<DABE><CDB8><EFBFBD>
|
|
|
|
|
QFile::copy(inputRaster, outputRaster);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
gdalImage img(outputRaster);
|
|
|
|
|
long rowblock = Memory1GB / img.width / 8 * 2;
|
|
|
|
|
ui->progressBar->setMaximum(img.height);
|
|
|
|
|
ui->progressBar->setValue(0);
|
|
|
|
|
for (long rid = 0; rid < img.height; rid = rid + rowblock)
|
|
|
|
|
{
|
2025-03-12 02:23:09 +00:00
|
|
|
|
for (long bid = 1; bid <= img.band_num; bid++)
|
2025-03-11 05:42:07 +00:00
|
|
|
|
{
|
|
|
|
|
Eigen::MatrixXd data = img.getData(rid, 0, rowblock, img.width, bid);
|
|
|
|
|
|
|
|
|
|
for (long i = 0; i < data.rows(); i++)
|
|
|
|
|
{
|
|
|
|
|
for (long j = 0; j < data.cols(); j++)
|
|
|
|
|
{
|
|
|
|
|
if (ui->radioButtonAmp->isChecked())
|
|
|
|
|
{
|
|
|
|
|
data(i, j) = std::pow(10.0,data(i,j)/20.0);
|
|
|
|
|
}
|
|
|
|
|
else if (ui->radioButtonIntenisty->isChecked())
|
|
|
|
|
{
|
|
|
|
|
data(i, j) = std::pow(10.0, data(i, j) / 10.0);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
img.saveImage(data, rid, 0, bid);
|
|
|
|
|
}
|
|
|
|
|
ui->progressBar->setValue(rid);
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
ui->progressBar->setValue(img.height);
|
|
|
|
|
|
|
|
|
|
QMessageBox::information(this, tr(u8"<EFBFBD><EFBFBD>ʾ"), tr(u8"completed!!!"));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void QtLinearToIntenisityDialog::onbtnrejected()
|
|
|
|
|
{
|
|
|
|
|
this->close();
|
|
|
|
|
}
|