遥感数字图像处理实习报告含Matlab处理代码Word文件下载.docx
《遥感数字图像处理实习报告含Matlab处理代码Word文件下载.docx》由会员分享,可在线阅读,更多相关《遥感数字图像处理实习报告含Matlab处理代码Word文件下载.docx(31页珍藏版)》请在冰豆网上搜索。
1.调用fopen函数用指定的方式打开文件。
2.在for循环中调用fread函数,用指定的格式读取各个像素。
3.用reshape函数,重置图像的行数列数。
4.用imadjust函数调整像素的范围,使其有一定对比度。
5.用imshow显示读取的图像。
三、Matlab源代码
1.读取BSQ的源代码:
clearall
clc
lines=400;
samples=640;
N=6;
img=fopen('
D:
\sample_BSQ'
'
rb'
);
fori=1:
N
bi=fread(img,lines*samples,'
uint8'
band_cov=reshape(bi,samples,lines);
band_cov2=band_cov'
;
band_uint8=uint8(band_cov2);
tif=imadjust(band_uint8);
mkdir('
\MATLAB'
tifbands1'
)
name=['
\MATLAB\tifbands1\tif'
int2str(i),'
.tif'
];
imwrite(tif,name,'
tif'
tilt=['
波段'
int2str(i)];
subplot(3,2,i),imshow(tif);
title(tilt);
end
fclose(img);
2.读取BIP源代码
N
img=fopen('
\MATLAB\sample_BIP'
b0=fread(img,i-1,'
b=fread(img,lines*samples,'
(N-1));
band_cov=reshape(b,samples,lines);
%×
ª
Ö
Ã
E:
tifbands'
\MATLAB\tifbands\tif'
%imwrite(A,filename,fmt)
fclose(img);
3.读取BIL的源代码
clc
bi=zeros(lines,samples);
forj=1:
samples
\MATLAB\sample_BIL'
bb=fread(img,(i-1)*640,'
b0=fread(img,1*(j-1),'
bandi_linej=fread(img,lines,'
1*(N*samples-1));
bi(:
j)=bandi_linej;
end
band_uint8=uint8(bi);
²
¨
¶
Î
'
四、运行结果
图1:
读取文件的六个波段图
实习2均值/中值滤波、边缘信息提取
一、实验目的与原理
各种图像滤波算子可以实现图像的增强,去噪,边缘提取等。
图像增强的目的在于:
1.采用一系列技术改善图像的视觉效果,提高图像的清晰度,2.将图像转换成一种更适合于人或机器进行分析处理的形式。
它不是以图像保真度为原则,而是通过处理,设法有选择地突出便于人或机器分析某些感兴趣的信息,抑制一些无用的信息,以提高图像的使用价值。
图像增强方法从增强的作用域出发,可分为空间域增强和频率域增强。
空间域增强就是直接对图像像素灰度进行操作;
频率域增强是对图像经傅里叶变换后的频谱成分进行操作,然后经傅里叶逆变换获得所需结果。
图像滤波可分为空间域滤波和频率域滤波,前者通过窗口或卷积核进行,它参照相邻像素改变单个像素的灰度值。
后者对图像进行傅立叶变换,然后对频谱进行滤波。
空间域图像滤波称为平滑和锐化,强调像素与其周围相邻像素的关系。
去噪滤波为平滑滤波包括均值滤波和中值滤波。
锐化滤波包括罗伯特梯度、索伯尔梯度、拉普拉斯算法、定向检测,用以提取线状地物和边缘。
此实验用Matlab采用各种滤波对图像进行了处理,处理结果如下:
1.用imread读取图像文件,并用size获取图像的大小。
2.设计各种滤波算子。
3利用卷积公式对图像的没一个像素进行处理,得到滤波后的图像。
4.用imshow显示滤波后的图像。
1.均值滤波源码:
img=imread('
2.jpg'
[row,column,band]=size(img);
img0=double(img);
f11=1/9;
f12=1/9;
f13=1/9;
f21=1/9;
f22=1/9;
f23=1/9;
f31=1/9;
f32=1/9;
f33=1/9;
img1=[img0(:
1,:
),img0(:
:
column,:
)];
img2=[img1(1,:
img1(:
img1(row,:
filtered=zeros(row,column,band);
forii=1:
row
forjj=1:
column
filtered(ii,jj,:
)=f11*img2(ii,jj,:
)+f12*img2(ii,jj+1,:
)+f13*img2(ii,jj+2,:
)+...
f21*img2(ii+1,jj,:
)+f22*img2(ii+1,jj+1,:
)+f23*img2(ii+1,jj+2,:
)+...
f31*img2(ii+2,jj,:
)+f32*img2(ii+2,jj+1,:
)+f33*img2(ii+2,jj+2,:
filtered1=uint8(filtered);
subplot(1,2,1),imshow(img);
title('
图1原始RGB图像'
subplot(1,2,2),imshow(filtered1);
图2均值滤波后的图像'
imwrite(filtered1,'
flower_filtered_mean.jpg'
2.边缘提取滤波源代码
f11=1;
f12=0;
f13=-1;
f21=1;
f22=0;
f23=-1;
f31=1;
f32=0;
f33=-1;
img2=[img1(1,:
filtered=zeros(row,column,band);
图1RGB原图像'
图2边缘提取后的图像'
flower_filtered_edge.jpg'
图1:
原始RGB图像图2:
均值滤波后的图像
图3:
边缘提取后的图像
实习3傅里叶变换、傅里叶逆变换,及频域滤波
按照信号处理理论,根据滤除的频率特征,滤波有3种:
1.低通滤波。
低通滤波是对频率域的图像通过滤波器H(u,v)削弱或抑制高频部分而保留低频部分的滤波方法。
由于图像上的噪声主要集中在高频部分,所以低通滤波可以起到压抑噪声的作用。
同时,由于强调了低频成分,图像会变得比较平滑。
2.高通滤波。
高通滤波是对频率域的图像通过滤波器来突出图像的边缘和轮廓,进行图像锐化的方法。
3.带通滤波。
仅保留指定频率范围的滤波,范围外的频率被阻止。
将空间域中的图像变换到频率域中进行计算。
空间增强技术强调像元位置和像元之间的关系,但随着考虑的像元数目增多,计算的复杂度增加而且非常耗费计算运算时间,特别是当模板越来越大时,这种现象尤为明显。
频率域增强方法:
1.频率域平滑:
保留图像的低频部分而抑制高频部分。
2.频率域锐化:
保留图像的高频部分而削弱低频部分。
首先将空间域图像
通过傅立叶变换为频率域图像
,然后选择合适的滤波器
对
的频谱成分进行增强得到图像
,再经过傅立叶逆变换将
变换到空间域,得到增强后的图像
。
根据傅里叶变换的原理,用Matlab实现对图像的傅里叶变换,再设计各种频率滤波器,包括理想滤波器、巴特沃斯滤波器、指数滤波器等