ENVI中的Segmentation Image工具开发接口
在ENVI Classic中,存在两个同名的工具——Segmentation Image。分别位于如下两个菜单位置:
- Basic Tools/Segmentation Image
- Classification/Post Classification/Segmentation Image
虽然工具名称相同,但是有一些简单区别。比如说,前者是对单波段图像进行分割,可以输入最大最小阈值,而后者是专门用于分类图像,进行分类后处理。工具参数对话框对比如下:

图:左为前者,右为后者
在ENVI Classic帮助中提供了后者的接口描述,如下所示。明确描述是分类后处理功能。
那如果想要前者的开发接口怎么办?这里ENVI耍了个小心眼,其实接口是一样的,只是参数没有开放出来,我们把帮助修改下,就可以作为前者的接口使用说明了。
ENVI_SEGMENT_DOIT
|
ENVI_DOIT, 'ENVI_SEGMENT_DOIT', ALL_NEIGHBORS={0 | 1}, DIMS=array, FID=file ID [, /IN_MEMORY] [, MIN_POPULATION=integer] [, OUT_BNAME=string array], OUT_NAME=string, POS=array [, R_FID=variable] , MIN_THRESH=double, MAX_THRESH=double |
区别就在于,不需要设置 CLASS_PTR 关键字了,只需要设置 MIN_THRESH、MAX_THRESH 关键字。
当只设置MIN_THRESH 时,MAX_THRESH 默认为数据最大值;
当只设置MAX_THRESH 时,MIN_THRESH 默认为数据最小值。
下面是一个示例:
|
PRO EXAMPLE_ENVI_SEGMENT_DOIT
COMPILE_OPT IDL2
ENVI, /restore_base_save_files ENVI_BATCH_INIT
file='C:\Program Files\Exelis\ENVI53\data\qb_boulder_msi' ENVI_OPEN_FILE, file, r_fid=fid
ENVI_FILE_QUERY, fid, dims=dims pos = [0] out_name = 'testimg' min_population = 100
ENVI_DOIT, 'envi_segment_doit', $ fid=fid, pos=pos, dims=dims, $ min_population=min_population, $ /all_neighbors, out_name=out_name, $ MIN_THRESH=20, Max_THRESH=200 END |
本文来自地理遥感生态网平台www.gisrs.cn,作者:地理遥感生态网平台,转载请注明原文链接:https://www.cnblogs.com/gisrs365/articles/18221231
浙公网安备 33010602011771号