67 lines
1.8 KiB
C++
67 lines
1.8 KiB
C++
#pragma once
|
|
/**
|
|
* 基础SARBaseTool 操作
|
|
*
|
|
*/
|
|
#include "LAMPToolAPI.h"
|
|
#include <complex>
|
|
#include <Eigen/Core>
|
|
#include <Eigen/Dense>
|
|
#include <omp.h>
|
|
#include <io.h>
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <gdal.h>
|
|
#include <gdal_utils.h>
|
|
#include <gdal_priv.h>
|
|
#include <gdalwarper.h>
|
|
#include <proj.h>
|
|
#include <string.h>
|
|
#include <memory.h>
|
|
#include <memory>
|
|
|
|
|
|
#define PI 3.141592653589793238462643383279
|
|
#define PI_180 180/3.141592653589793238462643383279
|
|
#define T180_PI 3.141592653589793238462643383279/180
|
|
#define LIGHTSPEED 299792458
|
|
#define LIGHESPEEDGHZ 0.299792458
|
|
|
|
#define Radians2Degrees(Radians) Radians*PI_180
|
|
#define Degrees2Radians(Degrees) Degrees*T180_PI
|
|
|
|
|
|
// 判断是否需要输出为DLL
|
|
#define DLLOUT
|
|
int LAMPTOOLAPI Complex2dB(QString in_tiff, QString out_dB_path);
|
|
int LAMPTOOLAPI Amplitude2dB(QString in_tiff, QString out_dB_path);
|
|
Eigen::MatrixXd LAMPTOOLAPI Complex2dB(Eigen::MatrixXcd in_matrix);
|
|
Eigen::MatrixXd LAMPTOOLAPI Complex2dB(Eigen::MatrixXd in_matrix_real, Eigen::MatrixXd in_matrix_imag );
|
|
|
|
double LAMPTOOLAPI Complex2Amplitude(std::complex<double> sign);
|
|
double LAMPTOOLAPI Complex2phase(std::complex<double> sign);// 返回弧度制相位
|
|
|
|
|
|
|
|
Eigen::MatrixXd LAMPTOOLAPI Complex2Amplitude(Eigen::MatrixXcd in_matrix);
|
|
Eigen::MatrixXd LAMPTOOLAPI Complex2phase(Eigen::MatrixXcd in_matrix);
|
|
// ----------------------------------------------------------------------------------------------------------
|
|
// 后向散射系数系统仿真模型
|
|
|
|
#ifndef DLLOUT
|
|
|
|
#else
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
#define DllExport __declspec( dllexport )
|
|
int __declspec(dllexport) Complex2dB_DLL(QString out_path, QString in_sar_path);
|
|
int __declspec(dllexport) Amplitude2dB_DLL(QString in_tiff, QString out_dB_path);
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|
|
|