[转载]ROI区域光谱曲线绘制Envi和Matlab方法
2015-09-28 09:09阅读:
1 ENVI 5.1 方法: 1)单点的波谱曲线绘制
菜单选择 display->file->spectral
在影像图中左键点击对应像元,在窗口中即显示该点光谱曲线
![[转载]ROI区域光谱曲线绘制Envi和Matlab方法 [转载]ROI区域光谱曲线绘制Envi和Matlab方法](http://s7.sinaimg.cn/bmiddle/0025sovJgy6UoiSngXk06&690)
注意:
在options选项卡中可以选择是否添加图例、十字丝等信息
x坐标可选,其中continuum removed表示包络
线去除
点开右边
小箭头
在勾选图层上双击可以编辑波段值(如把受水汽影响的波段全部赋值为0)
下一个选项卡可以查看基本信息
2)绘制ROI区域
File->New->Regions of
Interest,一个ROI里面可以包括很多记录(Record)
在图像中右键选择New
ROI,可以继续新建一个ROI,重复前面步骤绘制ROI
需要要编辑修改某个
ROI
时候,可以用
工具定位到需要修改的感兴趣区,右键选择菜单Edit
Record,可以拖动节点修改形状、大小、位置
在ROI toolbox中选择
file->save
as可以将roi保存成.xml格式文件,如果需要输出之前版本的.roi文件,可选择File
-> Export to
Classic。
3)打开Toolbox->Spectral->Spectral
Libraries->Spectral Library Builder
选择数据源,需要的波段范围
然后再import下拉菜单中选择from ROI/EVF
from input file
选中某一类感兴趣区,如水稻Crop,点击Plot,绘制该感兴趣区的平均光谱曲线。
2 Matlab方法
[x,y,c]=ginput(1);
%读取十字丝选取的一个点坐标值
m(1)=x;
n(1)=y;
plot(x,y,'r'); %红点标注所选位置
k=2;
while(c==1)
[x1,y1,c1]=ginput(1);
if c1==1
m(k)=x1;
n(k)=y1;
plot(x,y,'r');
line([m(k-1) m(k)],[n(k-1) n(k)]);
k=k+1;
c=c1;
else
break
end
end
line([m(k-1) m(1)],[n(k-1) n(1)]);
bbb=I(min(m):max(m),min(n):max(n),1);
[bbbx bbby]=size(bbb);
geshu=bbbx*bbby;
figure;imshow(bbb);
for i=1:bbbx
for j=1:bbby
A1(:,i*j)=Restore';
end
end
%xx1=mean(mean(A1));%
注:根据这种方法绘制的是ROI所在的最小矩形范围内的平均光谱曲线的绘制方法