LAMPCAE/src/PluginWBFZExchangePlugin/SARImageBase.h

96 lines
3.1 KiB
C
Raw Normal View History

2024-04-07 16:19:33 +00:00
#pragma once
#ifndef SARIMAGEBASE_H
#define SARIMAGEBASE_H
/**
*
****/
#include "referenceHeader.h"
#include "SARBaseTool.h"
// ------------------------------------------- 成像 公用库----------------------------------------------------------
// SAR 常用计算的方法
double getRangeResolution(double startfreq, double endfreq);
2024-04-07 16:19:33 +00:00
/// <summary>
/// 方位向分辨率计算
/// </summary>
/// <param name="AzAngleRange">弧度制,方位角变化范围(>=0</param>
/// <param name="startFreq">起始频率</param>
/// <returns></returns>
double getAzimuthResolution(double AzAngleRange, double startFreq);
2024-04-07 16:19:33 +00:00
// 根据输入数量构建汉明窗
Eigen::MatrixXd hammingWindows(size_t num);
2024-04-07 16:19:33 +00:00
// 频率域汉明窗口
/// <summary>
/// 频率域汉明窗口
/// </summary>
/// <param name="Nf">频率点数</param>
/// <param name="Nxa">脉冲数量</param>
/// <param name="alpha">权重</param>
/// <returns>汉明窗权重</returns>
Eigen::MatrixXd Hanning(size_t Nf, size_t Nxa, double alpha = 0.54);
2024-04-07 16:19:33 +00:00
/// <summary>
/// 获取2的平方数,大于2
/// </summary>
/// <param name="num"></param>
/// <returns></returns>
size_t nextpow2(size_t num);
2024-04-07 16:19:33 +00:00
/// <summary>
/// 对回波沿着行进行一维傅里叶逆变换
/// </summary>
/// <param name="ECHO"></param>
/// <returns></returns>
Eigen::MatrixXcd IFFTW1D(Eigen::MatrixXcd ECHO);
2024-04-07 16:19:33 +00:00
/// <summary>
/// 对回波沿着行进行一维傅里叶变换
/// </summary>
/// <param name="echo"></param>
/// <returns></returns>
Eigen::MatrixXcd FFTW1D(Eigen::MatrixXcd echo);
Eigen::MatrixXcd FFTW2D(Eigen::MatrixXcd ECHO);
2024-04-07 16:19:33 +00:00
Eigen::MatrixXcd fftshift(Eigen::MatrixXcd X);
2024-04-07 16:19:33 +00:00
/// <summary>
/// 对回波 加 hamming 窗
/// </summary>
/// <param name="FreqEcho">频域的回波数据PRFnum,Freqnum)</param>
/// <returns></returns>
Eigen::MatrixXcd HammingWindows(Eigen::MatrixXcd FreqEcho);
2024-04-07 16:19:33 +00:00
/// <summary>
/// 对回波进行一维插值(并行),不能用来处理极坐标
/// 插值方式为 实部虚部分别进行线性插值
/// </summary>
/// <param name="freqEcho">回波数据,(行数,列数):PRFNUM,freqNUM</param>
/// <param name="SourceFreqlist">回波的 原始频率列表</param>
/// <param name="interpFreqlist">回波的 插值频率列表</param>
/// <returns></returns>
Eigen::MatrixXcd InterpFreqEcho(Eigen::MatrixXcd freqEcho, Eigen::VectorXd SourceFreqlist, Eigen::VectorXd interpFreqlist);
2024-04-07 16:19:33 +00:00
/// <summary>
/// 保存复数矩阵数据 为tiff 其中band 1: amp (linear) angle(radia)
/// </summary>
/// <param name="out_tiff_path"></param>
/// <param name="data"></param>
/// <returns></returns>
int WriteComplexData2Amp_Arg(QString out_tiff_path, Eigen::MatrixXcd data);
2024-04-07 16:19:33 +00:00
/// <summary>
/// 保存复数矩阵数据 为tiff 其中band 1: amp (dB) angle(radia)
/// </summary>
/// <param name="out_tiff_path"></param>
/// <param name="data"></param>
/// <returns></returns>
int WriteComplexData2AmpdB_Arg(QString out_tiff_path, Eigen::MatrixXcd data);
2024-04-07 16:19:33 +00:00
// ----------------------------------------------------------------------------------------------------------
#endif