百度空间 | 百度首页 
 
查看文章
 
ENVI_STATS_DOIT和直方图
2009-09-10 12:04

问题(来自Esri社区,Envi/IDL版--顺便推荐此版,活跃度极高,高手如云):

“想获取NDVI图像达到某一个百分率的DN值,但是ENVI_STATS_DOIT只能提供hist,是个一维数组,只存了所有DN对应的象元数目。
比如某一个DN值对应的象元数有1000个,我怎么得到这个DN值是多少?”

我的回答:

由于直方图是按照DN值从小到大,按组距递增排列的。所以,知道像元个数后,先找到这个个数,是直方图数组的第几个元素,然后通过 (DMin + N * BinSize) 得到DN值。其中,N代表该像元个数在直方图数组的第N个。

问题来了,
Envi的统计函数:ENVI_STATS_DOIT,可以直接得到DMin,N也可以用Where函数去Hist数组里找。
但是BinSize怎么办? 这个统计函数,有个隐藏参数:BinSize,专门输出这个值。
例子:
envi_doit, 'envi_stats_doit', fid=fid, pos=pos, $  
dims=dims, comp_flag=3, dmin=dmin, hist=hist, BINSIZE=BINSIZE

留意上述语句的最后一个关键字参数:输出BinSize

;----------------------------------------------------------------------------------------

关于直方图,其实还有一个隐藏参数NBins,指直方图统计时的分组个数。

另外,Envi的隐藏函数,隐藏参数简直数不胜数。绝对一个大宝库。


类别:idl实用大全 | | 添加到搜藏 | 分享到i贴吧 | 浏览() | 评论 (2)
 
最近读者:
 
网友评论:
1
2009-09-10 22:19 | 回复
肯定的,功能在那摆着呢,要不你用IDL另写一个ENVI试试!哈哈
 
2
2009-09-15 11:28 | 回复
挖洞越来越厉害了
 
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码: 请点击后输入四位验证码,字母不区分大小写
      

     

©2010 Baidu