增加了 WGS84 到斜距平面查找表结果反向映射
parent
6d31efe868
commit
e19d039014
|
@ -139,6 +139,14 @@ struct Point3 {
|
|||
void setZ(double iz) { z = iz; }
|
||||
};
|
||||
|
||||
struct Point_3d {
|
||||
double x;
|
||||
double y;
|
||||
double z;
|
||||
};
|
||||
|
||||
|
||||
|
||||
struct DemBox {
|
||||
double min_lon;
|
||||
double max_lon;
|
||||
|
|
|
@ -0,0 +1,97 @@
|
|||
#include "QLookTableResampleFromWGS84ToRange.h"
|
||||
#include "BaseConstVariable.h"
|
||||
#include "BaseTool.h"
|
||||
#include <QMessageBox>
|
||||
#include <QFileDialog>
|
||||
#include "ui_QLookTableResampleFromWGS84ToRange.h"
|
||||
#include "ImageNetOperator.h"
|
||||
|
||||
QLookTableResampleFromWGS84ToRange::QLookTableResampleFromWGS84ToRange(QWidget *parent)
|
||||
: QDialog(parent)
|
||||
,ui(new Ui::QLookTableResampleFromWGS84ToRangeClass)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
|
||||
connect(ui->buttonBox, SIGNAL(accepted()), this, SLOT(onaccepted()));
|
||||
connect(ui->buttonBox, SIGNAL(rejected()), this, SLOT(onrejected()));
|
||||
connect(ui->pushButtonLookTableWGS84Select, SIGNAL(clicked(bool)), this, SLOT(onpushButtonLookTableWGS84SelectClicked(bool)));
|
||||
connect(ui->pushButtonLookTableRangeSelect, SIGNAL(clicked(bool)), this, SLOT(onpushButtonLookTableRangeSelectClicked(bool)));
|
||||
connect(ui->pushButtonLookTableCountSelect, SIGNAL(clicked(bool)), this, SLOT(onpushButtonLookTableCountSelectClicked(bool)));
|
||||
|
||||
|
||||
}
|
||||
|
||||
QLookTableResampleFromWGS84ToRange::~QLookTableResampleFromWGS84ToRange()
|
||||
{}
|
||||
|
||||
void QLookTableResampleFromWGS84ToRange::onaccepted()
|
||||
{
|
||||
QString looktableWGS84Ptah = ui->lineEditLookTableWGS84Path->text();
|
||||
QString looktableRangePtah = ui->lineEditLookTableRangePath->text();
|
||||
QString looktableCountPtah = ui->lineEditLookTableCountPath->text();
|
||||
|
||||
long Oriheight = ui->spinBoxRowCount->value();
|
||||
long OriWidth = ui->spinBoxColCount->value();
|
||||
|
||||
ReflectTable_WGS2Range(looktableWGS84Ptah, looktableRangePtah, looktableCountPtah, Oriheight, OriWidth);
|
||||
QMessageBox::information(nullptr, u8"提示", u8"完成");
|
||||
}
|
||||
|
||||
void QLookTableResampleFromWGS84ToRange::onrejected()
|
||||
{
|
||||
this->close();
|
||||
}
|
||||
|
||||
void QLookTableResampleFromWGS84ToRange::onpushButtonLookTableWGS84SelectClicked(bool)
|
||||
{
|
||||
QString fileNames = QFileDialog::getOpenFileName(
|
||||
this,
|
||||
tr(u8"选择成像粗平面文件"),
|
||||
QString(),
|
||||
tr(ENVI_FILE_FORMAT_FILTER)
|
||||
);
|
||||
|
||||
if (!fileNames.isEmpty()) {
|
||||
QString message = "选中文件\n";
|
||||
this->ui->lineEditLookTableWGS84Path->setText(fileNames);
|
||||
}
|
||||
else {
|
||||
QMessageBox::information(this, tr(u8"提示"), tr(u8"没有选中文件"));
|
||||
}
|
||||
}
|
||||
|
||||
void QLookTableResampleFromWGS84ToRange::onpushButtonLookTableRangeSelectClicked(bool)
|
||||
{
|
||||
QString fileNames = QFileDialog::getOpenFileName(
|
||||
this,
|
||||
tr(u8"选择成像粗平面文件"),
|
||||
QString(),
|
||||
tr(ENVI_FILE_FORMAT_FILTER)
|
||||
);
|
||||
|
||||
if (!fileNames.isEmpty()) {
|
||||
QString message = "选中文件\n";
|
||||
this->ui->lineEditLookTableRangePath->setText(fileNames);
|
||||
}
|
||||
else {
|
||||
QMessageBox::information(this, tr(u8"提示"), tr(u8"没有选中文件"));
|
||||
}
|
||||
}
|
||||
|
||||
void QLookTableResampleFromWGS84ToRange::onpushButtonLookTableCountSelectClicked(bool)
|
||||
{
|
||||
QString fileNames = QFileDialog::getOpenFileName(
|
||||
this,
|
||||
tr(u8"选择成像粗平面文件"),
|
||||
QString(),
|
||||
tr(ENVI_FILE_FORMAT_FILTER)
|
||||
);
|
||||
|
||||
if (!fileNames.isEmpty()) {
|
||||
QString message = "选中文件\n";
|
||||
this->ui->lineEditLookTableCountPath->setText(fileNames);
|
||||
}
|
||||
else {
|
||||
QMessageBox::information(this, tr(u8"提示"), tr(u8"没有选中文件"));
|
||||
}
|
||||
}
|
|
@ -0,0 +1,30 @@
|
|||
#pragma once
|
||||
|
||||
#include <QDialog>
|
||||
|
||||
|
||||
namespace Ui {
|
||||
class QLookTableResampleFromWGS84ToRangeClass;
|
||||
}
|
||||
|
||||
class QLookTableResampleFromWGS84ToRange : public QDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
QLookTableResampleFromWGS84ToRange(QWidget *parent = nullptr);
|
||||
~QLookTableResampleFromWGS84ToRange();
|
||||
|
||||
|
||||
public slots:
|
||||
|
||||
void onaccepted();
|
||||
void onrejected();
|
||||
void onpushButtonLookTableWGS84SelectClicked(bool);
|
||||
void onpushButtonLookTableRangeSelectClicked(bool);
|
||||
void onpushButtonLookTableCountSelectClicked(bool);
|
||||
|
||||
|
||||
private:
|
||||
Ui::QLookTableResampleFromWGS84ToRangeClass* ui;
|
||||
};
|
|
@ -0,0 +1,201 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>QLookTableResampleFromWGS84ToRangeClass</class>
|
||||
<widget class="QDialog" name="QLookTableResampleFromWGS84ToRangeClass">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>747</width>
|
||||
<height>293</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>QLookTableResampleFromWGS84ToRange</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="1">
|
||||
<widget class="QLineEdit" name="lineEditLookTableWGS84Path">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>30</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QLineEdit" name="lineEditLookTableCountPath">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>30</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="2">
|
||||
<widget class="QPushButton" name="pushButtonLookTableWGS84Select">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>30</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>选择</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="label_3">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>30</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>行数</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>30</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>查找表(斜距)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="2">
|
||||
<widget class="QPushButton" name="pushButtonLookTableRangeSelect">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>30</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>选择</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_4">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>30</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>查找表(WGS84)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>30</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>查找表采样点数</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="2">
|
||||
<widget class="QPushButton" name="pushButtonLookTableCountSelect">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>30</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>选择</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0" colspan="3">
|
||||
<widget class="QDialogButtonBox" name="buttonBox">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>30</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="standardButtons">
|
||||
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QLineEdit" name="lineEditLookTableRangePath">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>30</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="QLabel" name="label_5">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>30</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>列数</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<widget class="QSpinBox" name="spinBoxRowCount">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>30</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>999999999</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<widget class="QSpinBox" name="spinBoxColCount">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>30</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>999999999</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<layoutdefault spacing="6" margin="11"/>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
|
@ -6,6 +6,7 @@
|
|||
#include "GPUBaseTool.h"
|
||||
#include "GPUBPImageNet.cuh"
|
||||
#include "BaseTool.h"
|
||||
#include "BaseConstVariable.h"
|
||||
|
||||
|
||||
void InitCreateImageXYZProcess(QString& outImageLLPath, QString& outImageXYZPath, QString& InEchoGPSDataPath,
|
||||
|
@ -251,6 +252,8 @@ bool GPSPointsNumberEqualCheck(QString& ImageLLPath, QString& InEchoGPSDataPath)
|
|||
|
||||
}
|
||||
|
||||
|
||||
|
||||
void InterploateAtiByRefDEM(QString& ImageLLPath, QString& ImageDEMPath, QString& outImageLLAPath, QString& InEchoGPSDataPath)
|
||||
{
|
||||
gdalImage demimg(ImageDEMPath);
|
||||
|
@ -404,3 +407,172 @@ void InterploateAtiByRefDEM(QString& ImageLLPath, QString& ImageDEMPath, QString
|
|||
|
||||
qDebug() << u8"²åÖµÍê³É";
|
||||
}
|
||||
|
||||
|
||||
|
||||
int ReflectTable_WGS2Range(QString dem_rc_path,QString outOriSimTiffPath,QString ori_sim_count_tiffPath,long OriHeight,long OriWidth)
|
||||
{
|
||||
gdalImage sim_rc(dem_rc_path);
|
||||
gdalImage sim_sar_img = CreategdalImage(outOriSimTiffPath, OriHeight, OriWidth, 2, sim_rc.gt, sim_rc.projection, false);// 注意这里保留仿真结果
|
||||
gdalImage sim_sar_count_img = CreategdalImage(ori_sim_count_tiffPath, OriHeight, OriWidth, 1, sim_rc.gt, sim_rc.projection, false);// 注意这里保留仿真结果
|
||||
for (int max_rows_ids = 0; max_rows_ids < OriHeight; max_rows_ids = max_rows_ids + 1000) {
|
||||
Eigen::MatrixXd sim_sar = sim_sar_img.getData(max_rows_ids, 0, 1000, OriWidth, 1);
|
||||
Eigen::MatrixXd sim_sarc = sim_sar_img.getData(max_rows_ids, 0, 1000, OriWidth, 2);
|
||||
Eigen::MatrixXd sim_sar_count = sim_sar_count_img.getData(max_rows_ids, 0, 1000, OriWidth, 1);
|
||||
sim_sar = sim_sar.array() * 0 - 9999;
|
||||
sim_sarc = sim_sar.array() * 0 - 9999;
|
||||
sim_sar_count = sim_sar_count.array() * 0;
|
||||
sim_sar_img.saveImage(sim_sar, max_rows_ids, 0, 1);
|
||||
sim_sar_img.saveImage(sim_sarc, max_rows_ids, 0, 2);
|
||||
sim_sar_count_img.saveImage(sim_sar_count, max_rows_ids, 0, 1);
|
||||
}
|
||||
sim_sar_img.setNoDataValue(-9999, 1);
|
||||
sim_sar_img.setNoDataValue(-9999, 2);
|
||||
int conver_lines = 5000;
|
||||
int line_invert = 4000;// 计算重叠率
|
||||
int line_offset = 60;
|
||||
// 逐区域迭代计算
|
||||
omp_lock_t lock;
|
||||
omp_init_lock(&lock); // 初始化互斥锁
|
||||
int allCount = 0;
|
||||
|
||||
for (int max_rows_ids = 0; max_rows_ids < sim_rc.height; max_rows_ids = max_rows_ids + line_invert) {
|
||||
Eigen::MatrixXd dem_r = sim_rc.getData(max_rows_ids, 0, conver_lines, sim_rc.width, 1);
|
||||
Eigen::MatrixXd dem_c = sim_rc.getData(max_rows_ids, 0, conver_lines, sim_rc.width, 2);
|
||||
int dem_rows_num = dem_r.rows();
|
||||
int dem_cols_num = dem_r.cols();
|
||||
// 更新插值经纬度
|
||||
//Eigen::MatrixXd dem_lon = dem_r;
|
||||
//Eigen::MatrixXd dem_lat = dem_c;
|
||||
// 构建索引 更新经纬度并更新链
|
||||
|
||||
int temp_r, temp_c;
|
||||
|
||||
int min_row = dem_r.minCoeff() + 1;
|
||||
int max_row = dem_r.maxCoeff() + 1;
|
||||
|
||||
if (max_row < 0) {
|
||||
continue;
|
||||
}
|
||||
|
||||
int len_rows = max_row - min_row;
|
||||
min_row = min_row < 0 ? 0 : min_row;
|
||||
Eigen::MatrixXd sar_r = sim_sar_img.getData(min_row, 0, len_rows, OriWidth, 1);
|
||||
Eigen::MatrixXd sar_c = sim_sar_img.getData(min_row, 0, len_rows, OriWidth, 2);
|
||||
len_rows = sar_r.rows();
|
||||
|
||||
|
||||
#pragma omp parallel for num_threads(8) // NEW ADD
|
||||
for (int i = 0; i < dem_rows_num - 1; i++) {
|
||||
for (int j = 0; j < dem_cols_num - 1; j++) {
|
||||
Point3 p, p1, p2, p3, p4;
|
||||
Landpoint lp1, lp2, lp3, lp4;
|
||||
lp1 = sim_rc.getLandPoint(i + max_rows_ids, j, 0);
|
||||
lp2 = sim_rc.getLandPoint(i + max_rows_ids, j + 1, 0);
|
||||
lp3 = sim_rc.getLandPoint(i + 1 + max_rows_ids, j + 1, 0);
|
||||
lp4 = sim_rc.getLandPoint(i + 1 + max_rows_ids, j, 0);
|
||||
|
||||
p1 = { dem_r(i,j),dem_c(i,j) };
|
||||
p2 = { dem_r(i,j + 1),dem_c(i,j + 1) };
|
||||
p3 = { dem_r(i + 1,j + 1),dem_c(i + 1,j + 1) };
|
||||
p4 = { dem_r(i + 1,j),dem_c(i + 1,j) };
|
||||
|
||||
//if (angle(i, j) >= 90 && angle(i, j + 1) >= 90 && angle(i + 1, j) >= 90 && angle(i + 1, j + 1) >= 90) {
|
||||
// continue;
|
||||
//}
|
||||
|
||||
double temp_min_r = dem_r.block(i, j, 2, 2).minCoeff();
|
||||
double temp_max_r = dem_r.block(i, j, 2, 2).maxCoeff();
|
||||
double temp_min_c = dem_c.block(i, j, 2, 2).minCoeff();
|
||||
double temp_max_c = dem_c.block(i, j, 2, 2).maxCoeff();
|
||||
if ((int(temp_min_r) != int(temp_max_r)) && (int(temp_min_c) != int(temp_max_c))) {
|
||||
for (int ii = int(temp_min_r); ii <= temp_max_r + 1; ii++) {
|
||||
for (int jj = int(temp_min_c); jj < temp_max_c + 1; jj++) {
|
||||
if (ii < min_row || ii - min_row >= len_rows || jj < 0 || jj >= OriWidth) {
|
||||
continue;
|
||||
}
|
||||
p = { double(ii),double(jj),0 };
|
||||
//if (PtInRect(p, p1, p2, p3, p4)) {
|
||||
p1.z = lp1.lon;
|
||||
p2.z = lp2.lon;
|
||||
p3.z = lp3.lon;
|
||||
p4.z = lp4.lon;
|
||||
|
||||
p = invBilinear(p, p1, p2, p3, p4);
|
||||
if (isnan(p.z)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (p.x < 0) {
|
||||
continue;
|
||||
}
|
||||
double mean = (p1.z + p2.z + p3.z + p4.z) / 4;
|
||||
if (p.z > p1.z && p.z > p2.z && p.z > p3.z && p.z > p4.z) {
|
||||
p.z = mean;
|
||||
}
|
||||
if (p.z < p1.z && p.z < p2.z && p.z < p3.z && p.z < p4.z) {
|
||||
p.z = mean;
|
||||
}
|
||||
sar_r(ii - min_row, jj) = p.z;
|
||||
p1.z = lp1.lat;
|
||||
p2.z = lp2.lat;
|
||||
p3.z = lp3.lat;
|
||||
p4.z = lp4.lat;
|
||||
p = invBilinear(p, p1, p2, p3, p4);
|
||||
if (isnan(p.z)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (p.x < 0) {
|
||||
continue;
|
||||
}
|
||||
mean = (p1.z + p2.z + p3.z + p4.z) / 4;
|
||||
if (p.z > p1.z && p.z > p2.z && p.z > p3.z && p.z > p4.z) {
|
||||
p.z = mean;
|
||||
}
|
||||
if (p.z < p1.z && p.z < p2.z && p.z < p3.z && p.z < p4.z) {
|
||||
p.z = mean;
|
||||
}
|
||||
sar_c(ii - min_row, jj) = p.z;
|
||||
//}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
omp_set_lock(&lock); //获得互斥器
|
||||
sim_sar_img.saveImage(sar_r, min_row, 0, 1);
|
||||
sim_sar_img.saveImage(sar_c, min_row, 0, 2);
|
||||
allCount = allCount + conver_lines;
|
||||
qDebug() << "rows:\t" << allCount << "/" << sim_rc.height << "\t computing.....\t" ;
|
||||
omp_unset_lock(&lock); //释放互斥器
|
||||
|
||||
|
||||
}
|
||||
|
||||
qDebug() << "\t resample computing.....\t";
|
||||
{
|
||||
int conver = 5000;
|
||||
int line_invert = 4000;// 计算重叠率
|
||||
|
||||
ResampleGDALs(ori_sim_count_tiffPath.toUtf8().constData(), 1, GRIORA_Bilinear);
|
||||
ResampleGDALs(ori_sim_count_tiffPath.toUtf8().constData(), 2, GRIORA_Bilinear);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -13,5 +13,5 @@ bool GPSPointsNumberEqualCheck(QString& ImageLLPath, QString& InEchoGPSDataPath)
|
|||
|
||||
|
||||
void InterploateAtiByRefDEM(QString& ImageLLPath, QString& ImageDEMPath, QString& outImageLLAPath, QString& InEchoGPSDataPath);
|
||||
|
||||
int ReflectTable_WGS2Range(QString dem_rc_path, QString outOriSimTiffPath, QString ori_sim_count_tiffPath, long OriHeight, long OriWidth);
|
||||
#endif
|
||||
|
|
|
@ -0,0 +1,74 @@
|
|||
#include "QEcoherentAndAdditive.h"
|
||||
#include "ui_QEcoherentAndAdditive.h"
|
||||
#include <QFileDialog>
|
||||
#include <QMessageBox>
|
||||
|
||||
|
||||
QEcoherentAndAdditiveDialog::QEcoherentAndAdditiveDialog(QWidget *parent)
|
||||
: QDialog(parent)
|
||||
,ui(new Ui::QEcoherentAndAdditiveClass)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
|
||||
QObject::connect(ui->pushButtonEchoDataAddSelect, SIGNAL(clicked()), this, SLOT(onpushButtonEchoDataAddSelectClicked()));
|
||||
QObject::connect(ui->pushButtonEchoDataSelect, SIGNAL(clicked()), this, SLOT(onpushButtonEchoDataSelectClicked()));
|
||||
QObject::connect(ui->buttonBox, SIGNAL(accepted()), this, SLOT(onaccepted()));
|
||||
QObject::connect(ui->buttonBox, SIGNAL(rejected()), this, SLOT(onrejected()));
|
||||
}
|
||||
|
||||
QEcoherentAndAdditiveDialog::~QEcoherentAndAdditiveDialog()
|
||||
{}
|
||||
|
||||
void QEcoherentAndAdditiveDialog::onpushButtonEchoDataAddSelectClicked()
|
||||
{
|
||||
QString fileNames = QFileDialog::getOpenFileName(
|
||||
this, // 父窗口
|
||||
tr(u8"选择影像文件"), // 标题
|
||||
QString(), // 默认路径
|
||||
tr(u8"xml Files (*.xml);;All Files (*)") // 文件过滤器
|
||||
);
|
||||
|
||||
// 如果用户选择了文件
|
||||
if (!fileNames.isEmpty()) {
|
||||
QString message = "选择的文件有:\n";
|
||||
this->ui->lineEditEchoDataAddPath->setText(fileNames);
|
||||
}
|
||||
else {
|
||||
QMessageBox::information(this, tr(u8"没有选择文件"), tr(u8"没有选择任何文件。"));
|
||||
}
|
||||
}
|
||||
|
||||
void QEcoherentAndAdditiveDialog::onpushButtonEchoDataSelectClicked()
|
||||
{
|
||||
QString fileNames = QFileDialog::getOpenFileName(
|
||||
this, // 父窗口
|
||||
tr(u8"选择影像文件"), // 标题
|
||||
QString(), // 默认路径
|
||||
tr(u8"xml Files (*.xml);;All Files (*)") // 文件过滤器
|
||||
);
|
||||
|
||||
// 如果用户选择了文件
|
||||
if (!fileNames.isEmpty()) {
|
||||
QString message = "选择的文件有:\n";
|
||||
this->ui->lineEditEchoDataAdd2Path->setText(fileNames);
|
||||
}
|
||||
else {
|
||||
QMessageBox::information(this, tr(u8"没有选择文件"), tr(u8"没有选择任何文件。"));
|
||||
}
|
||||
}
|
||||
|
||||
void QEcoherentAndAdditiveDialog::onaccepted()
|
||||
{
|
||||
QString echo1Path = this->ui->lineEditEchoDataAddPath->text();
|
||||
QString echo2Path = this->ui->lineEditEchoDataAdd2Path->text();
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
QMessageBox::information(this, tr(u8"提示"), tr(u8"完成"));
|
||||
}
|
||||
|
||||
void QEcoherentAndAdditiveDialog::onrejected()
|
||||
{
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
#pragma once
|
||||
|
||||
#include <QMainWindow>
|
||||
#include <QDialog>
|
||||
|
||||
|
||||
namespace Ui {
|
||||
class QEcoherentAndAdditiveClass;
|
||||
}
|
||||
|
||||
class QEcoherentAndAdditiveDialog : public QDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
QEcoherentAndAdditiveDialog(QWidget *parent = nullptr);
|
||||
~QEcoherentAndAdditiveDialog();
|
||||
|
||||
|
||||
public slots:
|
||||
|
||||
void onpushButtonEchoDataAddSelectClicked();
|
||||
void onpushButtonEchoDataSelectClicked();
|
||||
void onaccepted();
|
||||
void onrejected();
|
||||
|
||||
private:
|
||||
Ui::QEcoherentAndAdditiveClass* ui;
|
||||
};
|
|
@ -0,0 +1,126 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>QEcoherentAndAdditiveClass</class>
|
||||
<widget class="QDialog" name="QEcoherentAndAdditiveClass">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>747</width>
|
||||
<height>239</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>仿真回波叠加</string>
|
||||
</property>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="0">
|
||||
<widget class="QToolBar" name="mainToolBar"/>
|
||||
</item>
|
||||
<item row="1" column="2">
|
||||
<widget class="QLineEdit" name="lineEditEchoDataAddPath">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>30</height>
|
||||
</size>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>30</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>带叠加回波:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="3">
|
||||
<widget class="QPushButton" name="pushButtonEchoDataAddSelect">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>30</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>选择</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="3">
|
||||
<widget class="QPushButton" name="pushButtonEchoDataSelect">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>30</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>选择</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="2">
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="4" column="1" colspan="3">
|
||||
<widget class="QDialogButtonBox" name="buttonBox">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>30</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="standardButtons">
|
||||
<set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QLabel" name="label_4">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>30</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>被叠加回波</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="2">
|
||||
<widget class="QLineEdit" name="lineEditEchoDataAdd2Path">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>30</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<layoutdefault spacing="6" margin="11"/>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
|
@ -210,6 +210,7 @@
|
|||
<ItemGroup>
|
||||
<ClCompile Include="PowerSimulationIncoherent\OribtModelOperator.cpp" />
|
||||
<ClCompile Include="PowerSimulationIncoherent\QCreateSARIntensityByLookTableDialog.cpp" />
|
||||
<ClCompile Include="PowerSimulationIncoherent\QLookTableResampleFromWGS84ToRange.cpp" />
|
||||
<ClCompile Include="PowerSimulationIncoherent\QSimulationLookTableDialog.cpp" />
|
||||
<ClCompile Include="PowerSimulationIncoherent\QSimulationSARPolynomialOrbitModel.cpp" />
|
||||
<ClCompile Include="PowerSimulationIncoherent\QtLinearToIntenisityDialog.cpp" />
|
||||
|
@ -218,6 +219,7 @@
|
|||
<ClCompile Include="SARImage\ImagePlaneAtiInterpDialog.cpp" />
|
||||
<ClCompile Include="SARImage\InitCreateImageXYZDialog.cpp" />
|
||||
<ClCompile Include="SARImage\QCreateInSARImagePlaneXYZRDialog.cpp" />
|
||||
<ClCompile Include="SimulationSAR\QEcoherentAndAdditive.cpp" />
|
||||
<ClCompile Include="SimulationSAR\QImageSARRFPC.cpp" />
|
||||
<ClCompile Include="SimulationSAR\QSARLookTableSimualtionGUI.cpp" />
|
||||
<ClCompile Include="SimulationSAR\QSimulationBPImage.cpp" />
|
||||
|
@ -243,6 +245,7 @@
|
|||
<QtMoc Include="PowerSimulationIncoherent\QtLinearToIntenisityDialog.h" />
|
||||
<QtMoc Include="PowerSimulationIncoherent\QtSimulationGeoSARSigma0Dialog.h" />
|
||||
<QtMoc Include="SARImage\InitCreateImageXYZDialog.h" />
|
||||
<QtMoc Include="PowerSimulationIncoherent\QLookTableResampleFromWGS84ToRange.h" />
|
||||
<ClInclude Include="SARImage\GPUBPImageNet.cuh" />
|
||||
<ClInclude Include="SARImage\ImageNetOperator.h" />
|
||||
<QtMoc Include="SARImage\ImagePlaneAtiInterpDialog.h" />
|
||||
|
@ -258,6 +261,7 @@
|
|||
<ClInclude Include="SimulationSAR\BPBasic0_CUDA.cuh" />
|
||||
<ClInclude Include="SimulationSAR\GPURFPC_single.cuh" />
|
||||
<ClInclude Include="SimulationSAR\GPUTBPImage.cuh" />
|
||||
<QtMoc Include="SimulationSAR\QEcoherentAndAdditive.h" />
|
||||
<ClInclude Include="SimulationSAR\RFPCProcessCls.h" />
|
||||
<ClInclude Include="SimulationSAR\SARSatelliteSimulationAbstractCls.h" />
|
||||
<ClInclude Include="SimulationSAR\SARSimulationTaskSetting.h" />
|
||||
|
@ -277,6 +281,7 @@
|
|||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<QtUic Include="PowerSimulationIncoherent\QCreateSARIntensityByLookTableDialog.ui" />
|
||||
<QtUic Include="PowerSimulationIncoherent\QLookTableResampleFromWGS84ToRange.ui" />
|
||||
<QtUic Include="PowerSimulationIncoherent\QSimulationLookTableDialog.ui" />
|
||||
<QtUic Include="PowerSimulationIncoherent\QSimulationSARPolynomialOrbitModel.ui" />
|
||||
<QtUic Include="PowerSimulationIncoherent\QtLinearToIntenisityDialog.ui" />
|
||||
|
@ -284,6 +289,7 @@
|
|||
<QtUic Include="SARImage\ImagePlaneAtiInterpDialog.ui" />
|
||||
<QtUic Include="SARImage\InitCreateImageXYZDialog.ui" />
|
||||
<QtUic Include="SARImage\QCreateInSARImagePlaneXYZRDialog.ui" />
|
||||
<QtUic Include="SimulationSAR\QEcoherentAndAdditive.ui" />
|
||||
<QtUic Include="SimulationSAR\QImageSARRFPC.ui" />
|
||||
<QtUic Include="SimulationSAR\QSARLookTableSimualtionGUI.ui" />
|
||||
<QtUic Include="SimulationSAR\QSimulationBPImage.ui" />
|
||||
|
|
|
@ -13,10 +13,6 @@
|
|||
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
|
||||
<Extensions>qrc;rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Form Files">
|
||||
<UniqueIdentifier>{99349809-55BA-4b9d-BF79-8FDBB0286EB3}</UniqueIdentifier>
|
||||
<Extensions>ui</Extensions>
|
||||
</Filter>
|
||||
<Filter Include="Translation Files">
|
||||
<UniqueIdentifier>{639EADAA-A684-42e4-A9AD-28FC9BCB8F7C}</UniqueIdentifier>
|
||||
<Extensions>ts</Extensions>
|
||||
|
@ -30,6 +26,10 @@
|
|||
<Filter Include="SARImage">
|
||||
<UniqueIdentifier>{3380934c-6b95-45eb-8d70-d8b58e0e9de3}</UniqueIdentifier>
|
||||
</Filter>
|
||||
<Filter Include="Form Files">
|
||||
<UniqueIdentifier>{99349809-55BA-4b9d-BF79-8FDBB0286EB3}</UniqueIdentifier>
|
||||
<Extensions>ui</Extensions>
|
||||
</Filter>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<ClInclude Include="simulationsartool_global.h">
|
||||
|
@ -80,8 +80,8 @@
|
|||
<ClInclude Include="SARImage\GPUBPImageNet.cuh">
|
||||
<Filter>SARImage</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="SARImage\QCreateInSARImagePlaneXYZRDialog.h">
|
||||
<Filter>SARImage</Filter>
|
||||
<ClInclude Include="PowerSimulationIncoherent\QLookTableResampleFromWGS84ToRange.h">
|
||||
<Filter>PowerSimulationIncoherent</Filter>
|
||||
</ClInclude>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
|
@ -148,6 +148,12 @@
|
|||
<ClCompile Include="SARImage\QCreateInSARImagePlaneXYZRDialog.cpp">
|
||||
<Filter>SARImage</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="SimulationSAR\QEcoherentAndAdditive.cpp">
|
||||
<Filter>SimulationSAR</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="PowerSimulationIncoherent\QLookTableResampleFromWGS84ToRange.cpp">
|
||||
<Filter>PowerSimulationIncoherent</Filter>
|
||||
</ClCompile>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<QtUic Include="SimulationSAR\QImageSARRFPC.ui">
|
||||
|
@ -186,6 +192,12 @@
|
|||
<QtUic Include="SARImage\QCreateInSARImagePlaneXYZRDialog.ui">
|
||||
<Filter>SARImage</Filter>
|
||||
</QtUic>
|
||||
<QtUic Include="SimulationSAR\QEcoherentAndAdditive.ui">
|
||||
<Filter>SimulationSAR</Filter>
|
||||
</QtUic>
|
||||
<QtUic Include="PowerSimulationIncoherent\QLookTableResampleFromWGS84ToRange.ui">
|
||||
<Filter>PowerSimulationIncoherent</Filter>
|
||||
</QtUic>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<QtMoc Include="SimulationSAR\QImageSARRFPC.h">
|
||||
|
@ -224,6 +236,12 @@
|
|||
<QtMoc Include="SARImage\ImagePlaneAtiInterpDialog.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</QtMoc>
|
||||
<QtMoc Include="SARImage\QCreateInSARImagePlaneXYZRDialog.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</QtMoc>
|
||||
<QtMoc Include="SimulationSAR\QEcoherentAndAdditive.h">
|
||||
<Filter>Header Files</Filter>
|
||||
</QtMoc>
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<CudaCompile Include="SimulationSAR\GPURFPC.cu">
|
||||
|
|
Loading…
Reference in New Issue