sar图像滤波处理和可视化
'''
from scipy.ndimage.filters import uniform_filter
from scipy.ndimage.measurements import variance
import cv2
import rasterio
import scipy.ndimage as ndimage
import numpy as np
def leefilter(img, size):
img_mean = ndimage.uniform_filter(img, size)
img_sqr_mean = uniform_filter(img2, size)
img_variance = img_sqr_mean - img_mean2
overall_variance = variance(img)
img_weights = img_variance2/(img_variance2 + overall_variance**2)
img_output = img_mean + img_weights * (img - img_mean)
return img_output
label_path='路径'
path=label_path.strip()[:-4]+'.tif'
s1_path=path.replace('lc','s1')
s2_path=path.replace('lc','s2')
with rasterio.open(s1_path) as ds: #2,256,256
all=[1,2]
s1=ds.read(all)
s1 = s1.astype(np.float32)
s1 = np.nan_to_num(s1)
s1 = np.clip(s1, -25, 0)
s1 /= 25
s1 += 1
s1 = s1.astype(np.float32)
after_sar=leefilter(s1,6)
print('down')
cv2.namedWindow("sar_image")
cv2.imshow('sar_image', after_sar[0])
cv2.waitKey (10000) # 显示 10000 ms 即 10s 后消失
cv2.destroyAllWindows()
'''
sar和高光谱的处理
'''
import numpy as np
data=np.load('1yy0_img.npy') #(15,10,10)
s1=data[:2,:,:]
s2=data[2:,:,:]
处理s1
s1 = s1.astype(np.float32)
s1 = np.nan_to_num(s1)
s1 = np.clip(s1, -25, 0)
s1 /= 25
s1 += 1
s1 = s1.astype(np.float32)
处理s2
s2 = s2.astype(np.float32)
s2 = np.clip(s2, 0, 10000)
s2 /= 10000
s2 = s2.astype(np.float32)
dt=np.concatenate([s1,s2],axis=0)
'''
网友评论