没有合适的资源?快使用搜索试试~ 我知道了~
首页遥感数字图像处理(内含Matlab)代码
资源详情
资源评论
资源推荐
辽宁工程技术大学
《数字图像处理》上机实习报告
《数字图像处理》上机实习报告
《数字图像处理》上机实习报告
《数字图像处理》上机实习报告
教学单位 辽宁工程技术大学
专 业 摄影测量与遥感
实习名称 遥感数字图像处理
班 级 测绘研 11-3 班
学生姓名 路聚峰
学 号 471120212
指导教师 孙华生
实习 1
1
1
1 读取 BIP
BIP
BIP
BIP 、
、
、
、 BIL
BIL
BIL
BIL 、
、
、
、 BSQ
BSQ
BSQ
BSQ 文件
一、实验目的
用
Matlab
读取
BIP
、
BIL
、
BSQ
文件,并将结果显示出来。
遥感图像包括多个波段,有多种存储格式,但基本的通用格式有
3
种, 即
BSQ
、
BIL
和
BIP
格式 。 通过这三种格式 , 遥感图像处理系统可以对不同传感器
获取的图像数据进行转换。
BSQ
是像素按波段顺序依次排列的数据格式。
BI L
格式中 , 像素先以行为单位块 , 在每个块内 , 按照波段顺序排列像素 。
BIP
格式
中 , 以像素为核心 , 像素的各个波段数据保存在一起 , 打破了像素空间位置的连
续性。
用
Matlab
读取各个格式的遥感数据,是图像处理的前提条件,只有将图像
读入
Matlab
工作空间,才能进行后续的图像处理工作。
二、算法描述
1. 调用
fopen
函数用指定的方式打开文件。
2. 在
for
循环中调用
fread
函数,用指定的格式读取各个像素。
3. 用
reshape
函数,重置图像的行数列数。
4. 用
imadjust
函数调整像素的范围,使其有一定对比度。
5. 用
imshow
显示读取的图像。
三、
Matlab
源代码
1. 读取
BSQ
的源代码:
clear all
clc
lines=400;
samples=640;
N=6;
img=fopen( 'D:\sample_BSQ' , 'rb' );
for i=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( 'D:\MATLAB' , 'tifbands1' )
name=[ 'D:\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
源代码
c lear all
clc
lines=400;
samples=640;
N=6;
for i=1:N
img=fopen('D:\MATLAB\sample_BIP','rb');
b0=fread(img,i-1,'uint8');
b=fread(img,lines*samples,'uint8',(N-1));
band_cov=reshape(b,samples,lines);
band_cov2=band_cov';% תÖÃ
band_uint8=uint8(band_cov2);
tif=imadjust(band_uint8);
mkdir('E:\MATLAB','tifbands')
name=['E:\MATLAB\tifbands\tif',int2str(i),'.tif'];
imwrite(tif,name,'tif'); %imwrite(A,filename,fmt)
tilt=[' 波段 ',int2str(i)];
subplot(3,2,i),imshow(tif);title(tilt);
fclose(img);
end
3.
读取
BIL
的源代码
clear all
clc
lines=400;
samples=640;
N=6;
for i=1:N
bi=zeros(lines,samples);
for j=1:samples
img=fopen( 'D:\MATLAB\sample_BIL' , 'rb' );
bb=fread(img,(i-1)*640, 'uint8' );
b0=fread(img,1*(j-1), 'uint8' );
bandi_linej=fread(img,lines, 'uint8' ,1*(N*samples-1)); fclose(img);
bi(:,j)=bandi_linej;
end
band_uint8=uint8(bi);
tif=imadjust(band_uint8);
mkdir( 'D:\MATLAB' , 'tifbands' )
name=[ 'D:\MATLAB\tifbands\tif' ,int2str(i), '.tif' ];
imwrite(tif,name, 'tif' );
tilt=[
'
波段 ' ,int2str(i)];
subplot(3,2,i),imshow(tif);title(tilt);
end
四、运行结果
图
1
:
读取 文件的六个波段图
实习 2 均值 / 中值滤波、边缘信息提取
一、实验目的与原理
各种图像滤波算子可以实现图像的增强 , 去噪 , 边缘提取等 。 图像增强的目
的在于:
1.
采用一系列技术改善图像的视觉效果,提高图像的清晰度,
2.
将图像
转换成一种更适合于人或机器进行分析处理的形式。它不是以图像保真度为原
则,而是通过处理,设法有选择地突出便于人或机器分析某些感兴趣的信息 , 抑
制一些无用的信息 , 以提高图像的使用价值 。 图像增强方法从增强的作用域出发
,
可分为空间域增强和频率域增强。空间域增强就是直接对图像像素灰度进行操
作 ; 频率域增强是对图像经傅里叶变换后的频谱成分进行操作 , 然后经傅里叶逆
变换获得所需结果。
图像滤波可分为空间域滤波和频率域滤波,前者通过窗口或卷积核进行 , 它
参照相邻像素改变单个像素的灰度值 。 后者对图像进行傅立叶变换 , 然后对频谱
进行滤波 。 空间域图像滤波称为平滑和锐化 , 强调像素与其周围相邻像素的关系
。
去噪滤波为平滑滤波包括均值滤波和中值滤波 。 锐化滤波包括罗伯特梯度 、 索伯
尔梯度 、 拉普拉斯算法 、 定向检测 , 用以提取线状地物和边缘 。 此实验用
Matla b
采用各种滤波对图像进行了处理,处理结果如下:
二、算法描述
1. 用 imread 读取图像文件,并用 size 获取图像的大小。
2. 设计各种滤波算子。
3 利用卷积公式对图像的没一个像素进行处理,得到滤波后的图像。
4. 用 imshow 显示滤波后的图像。
三、 Matlab 源代码
1. 均值滤波源码 :
clear all
clc
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(:,:,:), img0(:,column,:)];
img2=[img1(1,:,:); img1(:,:,:); img1(row,:,:)];
filtered=zeros(row,column,band);
for ii=1: row
for jj=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,:);
end
end
filtered1=uint8(filtered);
subplot(1,2,1),imshow(img);title(
'
图 1 原始 RGB 图像 ' );
subplot(1,2,2),imshow(filtered1);title( ' 图 2 均值滤波后的图像
'
);
imwrite(filtered1, 'flower_filtered_mean.jpg' );
2. 中值滤波代码:
image = imread( 'flower.jpg' );
[m,n,p] = size(image);
image0 = double(image);
image1=[image0(:,1,:), image0(:,:,:), image0(:,n,:)]; image2=[image1(1,:,:); image1(:,:,:);
image1(m,:,:)];
clear image1
image1 = zeros(m,n,p);
for i = 1:m
for j = 1:n
A = image2(i:i+2,j:j+2,:);
B = reshape(A,3*3,3);
image1(i,j,:) = median(B);
end
end
image1 = uint8(image1);
subplot(1,2,1),imshow(image);title(
'
图 1 :原始的 RGB 图像
'
);
subplot(1,2,2),imshow(image1);title( ' 图 2 :中值滤波后的图像 ' );
3. 边缘提取滤波源代码
剩余26页未读,继续阅读
IvanLJF
- 粉丝: 574
- 资源: 21
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- 2022年中国足球球迷营销价值报告.pdf
- 房地产培训 -营销总每天在干嘛.pptx
- 黄色简约实用介绍_汇报PPT模板.pptx
- 嵌入式系统原理及应用:第三章 ARM编程简介_3.pdf
- 多媒体应用系统.pptx
- 黄灰配色简约设计精美大气商务汇报PPT模板.pptx
- 用matlab绘制差分方程Z变换-反变换-zplane-residuez-tf2zp-zp2tf-tf2sos-sos2tf-幅相频谱等等.docx
- 网络营销策略-网络营销团队的建立.docx
- 电子商务示范企业申请报告.doc
- 淡雅灰低面风背景完整框架创业商业计划书PPT模板.pptx
- 计算模型与算法技术:10-Iterative Improvement.ppt
- 计算模型与算法技术:9-Greedy Technique.ppt
- 计算模型与算法技术:6-Transform-and-Conquer.ppt
- 云服务安全风险分析研究.pdf
- 软件工程笔记(完整版).doc
- 电子商务网项目实例规划书.doc
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论13