您好,欢迎访问三七文档
当前位置:首页 > 医学/心理学 > 医学现状与发展 > MATLAB中高光谱图像处理
1651.打开数据文件:datafile1=fopen('Terrain.hsi')。2.读入文件头的信息:cur=fread(datafile1,4,'int32')。执行结果为(cur的四个值:图像宽度,图像长度,波段数,像素所占字节数):307,500,210,2。3.cur=fread(datafile1,inf,'int16')。可通过”size(cur)”获得cur的大小,这里为32235000(=307*500*210)。4.将一维数组变换成210x(307*500)大小的矩阵:array=reshape(cur,210,307*500)。Array矩阵的每一列代表一个像素点在不同波段的值的大小,每一行为一个波段对应的全部数据。5.对每个波段求其标准差。先将包含图像数据的矩阵转换成500*307)x210的矩阵,使每一列的数据为一波段的全部数据。1.变换矩阵stdv=reshape(array',500*307,210);2.求方差stdv=std(stdv);3.画出标准差形成的曲线(图1):050100150200250050100150200250300350400图1由图像可大致分析出1-22、102-109、137-151、194-210可能为无用数据。6.到这里就可以用array中的数据画出任意波段的图像。例如,选取有用数据20个波段的图像:a.提取该波段的全部数据并将它转成307x500的矩阵:pic=reshape(array(175,1:500*307),307,500);b.将矩阵内的数据显示出来:imshow(pic,[])(图2):图27.求出它对应的直方图:hist(pic)。(画出矩阵的直方图)如图2。0100200300400500600700050100150200250图3
本文标题:MATLAB中高光谱图像处理
链接地址:https://www.777doc.com/doc-4761160 .html