- 1、本文档共15页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ENVI_IDL强度阈值文档
ENVI功能扩展:强度阈值化说明
制作时间:2011年5月26日
制作人:黄元进
目录
1.引言 3
1.1编写目的 3
1.2背景 3
2.强度阈值概述 3
2.1强度阈值化功能的针对对象 3
2.2强度阈值化定义 3
3强度阈值化的IDL+ENVI实现 4
3.1强度阈值化的算法 4
3.2算法实现调用的主要ENVI函数 5
3.3强度阈值化功能实现的IDL源码 5
3.4强度阈值化功能的主要程序窗口 7
3.5强度阈值化程序的保存 8
4 ENVI菜单功能扩展:强度阈值化实现 9
4.1 ENVi菜单上加入强度阈值功能项 9
4.2重启ENVI 9
4.3在ENVi中编译强度阈值程序 9
5参考资料 10
6附件 11
附件1 11
附件 2 12
1.引言
1.1编写目的
提供ENVI功能扩展:强度阈值化功能实现的技术文档,以便后期的参考和改进。
1.2背景
待开发的功能:强度阈值化;
开发平台:IDL、ENVI
2.强度阈值概述
2.1强度阈值化功能的针对对象
本文档所说明的强度阈值化功能针对单通道灰度图像进行操作。针对多通道灰度图像进行阈值化操作需要针对每个通道给出相应的阈值并进行操作,目前还没有实现。
2.2强度阈值化定义
所谓强度阈值化,就是根据给定的阈值对灰度图像的像素强度值进行分类(或者解释为量化)。假设灰度图像像素取值范围为0到255,给出两个阈值 t1=10, t2=100,则像素取值落在[0,t1)范围内的重新量化为0,像素取值落在[t1,t2)范围内的量化为1,像素取值落在[t2,255]范围内的量化为2. 这样就把图像中的所有像素根据取值分为了3个不同类别。类似的如果给出3个阈值可以分为4个类别,给出N个阈值则分为N+1个类别。
当仅处理一个阈值时,也叫做图像二值化,即把灰度图像分为目标和背景两部分。
例如:例如:IDL a=[1,2,3]
IDL print,b=a gt 2
结果为 0 0 1;这就是一个强度阈值化(二值化)的例子。
3强度阈值化的IDL+ENVI实现
3.1强度阈值化的算法
在IDL+ENVI中实现强度阈值化功能采用了图1所示的步骤:第一、打开一幅遥感图像,获取图像信息;第二、对图像进行阈值化;第三、显示阈值化后的结果图像;
流程图如图3-1所示
图 3-1 强度阈值算法流程图
3.2算法实现调用的主要ENVI函数
envi_select;打开文件的窗口
envi_get_data;获取数据函数
widget_param;输入阈值的窗口
window;显示图像的窗口
3.3强度阈值化功能实现的IDL源码
pro yuzhi,event
uvalue=first function
if (uvalue eq first function) then begin
envi_select, title=Ratio Input File, fid=fid, dims=dims,pos=pos
if (fid eq -1) then return
envi_file_query, fid, fname=fname
num_cols=dims[2]-dims[1]+1;
num_rows=dims[4]-dims[3]+1;
num_bands= n_elements(pos);
image=fltarr(num_bands, num_cols, num_rows)
image[0,*,*]=$
envi_get_data(fid=fid,dims=dims,pos=pos[0])
base = widget_auto_base(title=Ratio Parameters)
sb1 = widget_base(base, /row)
t = widget_param(sb1, prompt=value Threshold parameters,dt=4,field=2, uvalue=t,/auto)
result = auto_wid_mng(base)
if(result.ACCEPT eq 0) then return
b=image[0,*,*]
t=result.T
c=b gt t
window,11,xsize=num_cols, ysize=num_rows, title=fname
tvscl, c
endif
end
3.4强度阈值化功能的主要程序窗口
图3-2 打开图像窗口
图3-3 输入阈值窗口
图 3-4 显示阈值窗口
3.5强度阈值化程序的保存
如果要作为ENVI的菜单功能扩展函数,则需要把编译好的强度阈值程序保存在ENVI的安装目录下的save_add文件夹下
文档评论(0)