在研究图像质量评价时,可以使用信噪比(SNR)的方法。信噪比,顾名思义就是信号与噪声的比例,那么对于遥感影像来说,每个波段都有一个信噪比,这个值越大,说明该波段噪声越小。
基于局部方差法计算遥感影像的信噪比,具体步骤如下:
1.边缘提取--------基于Canny算子对图像进行边缘提取,结果为二值图像;边缘值为1,非边缘值为0。
data=envi_get_data(fid=fid, dims=dims, pos=ib)
mask=canny(data,high=0.8,low=0.4,sigma=0.6);canny算法提取边缘
2.边缘块剔除--------按照规定字块尺寸(4x4)对整个图像进行分块,统计每一个子块中是否包含有边缘值,若有则将该子块剔除,不再参加后面的信噪比估算。
;分块尺寸
width=4
ns_new=ns/width & nl_new=nl/width
nosie_subset=fltarr(ns_new,nl_new)
singal_subset=fltarr(ns_new,nl_new)
;如果当前块含有边缘,则进入下一像元
tmask=mask[i*width:(i+1)*width-1,j*width:(j+1)*width-1]
3. 局部方差法估算噪声值--------计算每一个子块的局部标准差和均值,在局部标准差最小值与平均值的1.2倍之间划分150个区间,按标准差大小将各子块落入到相应的区间,以此计算得到直方图。根据直方图统计出包含子块最多的区间,计算区间内标准差的平均值作为噪声估计值。
;计算直方图,找出最多快的区间,计算该区间的平均标准差,即图像噪声
binsize=(mean(nosie_subset))*1.2-min(nosie_subset)/150
ht=histogram(nosie_subset,binsize=binsize,locations=locations)
maxv=max(ht,index);统计直方图中哪个区间的块最多
4.信噪比计算--------统计剔除边缘块后的像元平均值作为估计值:
上式中,SNR为图像信噪比,为图像均值,LSD为噪声估计值
;波段平均标准差除以该波段的平均值,得到信噪比
SN[ib]=singal/noise
5.下面为计算GF2多光谱每个波段的信噪比:
参考:1.<<遥感二次开发语言IDL>>-徐永明
下载地址:https://download.csdn.net/download/qq_33356563/10627554