63 lines
2.1 KiB
Python
63 lines
2.1 KiB
Python
|
||
import numpy as np
|
||
|
||
from tool.algorithm.image.ImageHandle import ImageHandler
|
||
from matplotlib import pyplot as plt
|
||
import matplotlib as mpl
|
||
from scipy import signal
|
||
import scipy
|
||
cmap = mpl.cm.jet_r
|
||
|
||
def show_filt():
|
||
mas = r"D:\micro\LWork\VegetationHeight\Temporary\preprocessed\master_s2\s11.bin"
|
||
aux = r"D:\micro\LWork\VegetationHeight\Temporary\preprocessed\slave_s2\s11.bin"
|
||
out_file = r'D:\micro\LWork\VegetationHeight\Temporary\preprocessed\test_def.tif'
|
||
|
||
mas_arr = np.fromfile(mas, np.complex64)
|
||
aux_arr = np.fromfile(aux, np.complex64)
|
||
# mas_new = mas_arr.reshape(1307, 1900)
|
||
# aux_new = aux_arr.reshape(1307, 1900)
|
||
mas_new = mas_arr.reshape(6419, 5117)
|
||
aux_new = aux_arr.reshape(6419, 5117)
|
||
# mas_arr = ImageHandler.get_all_band_array(mas)
|
||
# aux_arr = ImageHandler.get_all_band_array(aux)
|
||
# mas_new = mas_arr[:,:,0] + mas_arr[:,:,1] * 1j
|
||
# aux_new = aux_arr[:,:,0] + aux_arr[:,:,1] * 1j
|
||
|
||
res = mas_new * np.conj(aux_new)
|
||
|
||
ang1 = np.angle(res, deg=False)
|
||
ImageHandler.write_img(out_file, '', [0, 0, 0, 0, 0, 0], ang1)
|
||
plt.imshow(ang1, cmap="hsv")
|
||
plt.colorbar()
|
||
plt.set_cmap(cmap)
|
||
plt.show()
|
||
|
||
|
||
def compute_flat_phase_estimate(sar_image):
|
||
# 假设sar_image是输入的SAR图像数据,是一个二维的复数数组,其中每个元素包含振幅和相位信息
|
||
# 首先,计算SAR图像的幅度
|
||
sar_amplitude = np.abs(sar_image)
|
||
|
||
# 对幅度进行多普勒校正,这个步骤通常包括对图像进行配准和校正
|
||
# 这里仅仅做示例,实际情况下你可能需要更复杂的配准和校正步骤
|
||
sar_amplitude_corrected = sar_amplitude
|
||
|
||
# 计算多普勒校正后的SAR图像的相位
|
||
sar_phase = np.angle(sar_image)
|
||
|
||
# 使用信号处理中的方法(例如2D FFT)估计平地相位
|
||
# 在这个示例中,我们使用3x3的中值滤波器来平滑相位图像
|
||
flat_phase_estimate = signal.medfilt(sar_phase, kernel_size=3)
|
||
plt.imshow(flat_phase_estimate[:,:,1], cmap="hsv")
|
||
plt.colorbar()
|
||
plt.set_cmap(cmap)
|
||
plt.show()
|
||
|
||
return flat_phase_estimate
|
||
|
||
|
||
|
||
if __name__ == '__main__':
|
||
|
||
show_filt() |