IDL下快视图生成

由庞大的遥感影像(全色或多光谱的GeoTiff文件或ENVI文件)生成10MB以下的jpg格式图片,便于对遥感影像有初步的认知,RGBBands为RGB组合波段(全色可忽略),Resample用于调整是否进行重采样至256大小,使结果更加精简。源码:

PRO QULK

  COMPILE_OPT IDL2
  
  Inputfile = 'D:\IDL_Workspace\IMG_QB\MS.tif'
  Outputfile = 'D:\MS.jpg'
  RGBBands = [4,3,2] ;If Imagery Is One-band, Ignore It
  Resample = 1 ;1 Stands for Resample to size 256, and 0 Stands for NOT
  GetQULK, Inputfile, Outputfile, RGBBands, Resample

END


PRO GetQULK, Inputfile, Outputfile, Bands, Resample

  e = ENVI(/Headless)
  Pos = STRSPLIT(Inputfile, '\')
  R = STRMID(Inputfile, Pos[-1], STRLEN(Inputfile)-1)
  
  CASE STRPOS(R, '.tif') OF
    -1: BEGIN ;ENVI Format Image File
      ENVI_OPEN_FILE, Inputfile, r_fid = fid
      ENVI_FILE_QUERY, fid, ns = ns, nl = nl,$
        nb = nb, dims = dims, data_type = data_type
      IF nb EQ 1 THEN BEGIN ;One-band
        Arr = ENVI_GET_DATA(fid = fid, dims = dims, pos = 0)
        IF Resample EQ 1 THEN Arr = CONGRID_TO_256(Arr)
        GRACPHIC_SAVE, Arr, Outputfile
      ENDIF ELSE BEGIN ;Multi-band
        TempArr = MAKE_ARRAY(3, ns, nl, Type = data_type)
        FOR i=0,2,1 DO BEGIN
          Pstn = Bands[i] - 1
          TempArr[i, *, *] = ENVI_GET_DATA(fid = fid,$
            dims = dims, pos = Pstn)
        ENDFOR
        IF Resample EQ 1 THEN TempArr = CONGRID_TO_256(TempArr)
        GRACPHIC_SAVE, TempArr, Outputfile
      ENDELSE
      END
    ELSE: BEGIN ;GeoTiff Format
      Arr = READ_TIFF(Inputfile)
      ArrSize = SIZE(Arr, /Dimensions)
      Dimensions = SIZE(ArrSize, /N_Elements)
      IF Dimensions EQ 2 THEN BEGIN ;One-band
        IF Resample EQ 1 THEN Arr = CONGRID_TO_256(Arr)
        GRACPHIC_SAVE, Arr, Outputfile
      ENDIF ELSE BEGIN ;Multi-band
        ArrType = SIZE(Arr, /Type)
        TempArr = MAKE_ARRAY(3, ArrSize[1], ArrSize[2], Type = ArrType)
        FOR i=0, 2, 1 DO BEGIN
          Pstn = Bands[i] - 1
          TempArr[i, *, *] = Arr[Pstn, *, *]
        ENDFOR
        IF Resample EQ 1 THEN TempArr = CONGRID_TO_256(TempArr)
        GRACPHIC_SAVE, TempArr, Outputfile
      ENDELSE
      END
  ENDCASE
END


PRO GRACPHIC_SAVE, Arr, Outputfile

  Graphic = IMAGE(Arr, /Buffer, /Order)
  Graphic.SAVE, Outputfile

END


FUNCTION CONGRID_TO_256, Arr

  ArrSize = SIZE(Arr, /Dimensions)
  Dimensions = N_ELEMENTS(ArrSize)
  
  IF Dimensions EQ 2 THEN BEGIN ;One-band
    Maxnum = MAX([ArrSize[0], ArrSize[1]])
    Factor = FIX(Maxnum / 256)
    Arr = CONGRID(Arr, ArrSize[0] / Factor, ArrSize[1] / Factor, /Center)
  ENDIF ELSE BEGIN ;Multi-band
    Maxnum = MAX([ArrSize[1], ArrSize[2]])
    Factor = FIX(Maxnum / 256)
    Arr = CONGRID(Arr, ArrSize[0], ArrSize[1] / Factor, ArrSize[2] / Factor, /Center)
  ENDELSE
  
  RETURN, Arr

END

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: IDL速大气校正代码是一种用于对遥感图像进行预处理的工具。它主要用于校正遥感图像中由于大气散射引起的亮度变化,以便更好地提取地物信息。 IDL速大气校正代码的实现主要包括以下几个步骤: 1. 输入遥感图像:首先,需要将待校正的遥感图像输入到程序中。这个图像可以是多光谱遥感图像或高光谱遥感图像等。 2. 大气校正参数估计:接下来,程序会估计遥感图像中的大气校正参数。这些参数包括大气散射系数、大气透过率和观测角。 3. 大气校正计算:然后,程序会利用估计的大气校正参数对遥感图像进行校正。具体而言,它会使用大气散射模型来减少大气散射引起的亮度变化,使得图像中的地物更加清晰可见。 4. 输出校正后的图像:最后,程序会将经过校正处理后的图像输出保存。这个校正后的图像可以用于后续的遥感分析和处理。 IDL速大气校正代码的优点是操作简便、速度。它可以高效地校正大气散射引起的亮度变化,提高遥感图像的质量和可用性。同时,它还可以适用于不同类型的遥感图像,具有较好的通用性。 总的来说,IDL速大气校正代码是一种重要的遥感图像预处理工具,可以在不同遥感应用中发挥重要作用。 ### 回答2: idl速大气校正代码指的是使用IDL语言编写的一种速大气校正算法。大气校正是遥感图像处理中的一项重要任务,它的目的是去除图像中大气散射的影响,使得图像更加真实准确。 idl速大气校正代码通常包含以下主要步骤: 1. 读取原始遥感图像数据:首先需要将原始的遥感图像数据加载到代码中进行处理。一般情况下,遥感图像数据以数字化的形式存储在文件中,IDL提供了读取各种常见格式图像数据的函数。 2. 估计大气透射率:根据遥感图像中的信息,通过一定的算法来估计图像中大气透射率的分布。大气透射率反映了光线在大气中的传播情况,对遥感图像的质量具有很大影响。 3. 校正图像:将原始图像根据估计的大气透射率进行校正,去除大气散射的影响。具体的校正算法可以采用不同的方法,如改变图像的对比度、亮度等。 4. 保存校正后的图像:将校正后的图像保存到文件中,以便进一步的处理和分析。 IDL提供了丰富的图像处理函数和工具包,使得编写速大气校正代码相对来说较为简便。通过编写IDL速大气校正代码,可以速地对遥感图像进行大气校正,提高图像的质量和准确性,并为后续的遥感图像处理和分析提供更可靠的基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值