在研究图像质量评价时,可以使用信噪比(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

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐