没有合适的资源?快使用搜索试试~ 我知道了~
河北工业大学《计算机图像处理》实验指导书.docx
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 72 浏览量
2021-10-11
15:27:34
上传
评论
收藏 780KB DOCX 举报
温馨提示
试读
16页
。。。
资源推荐
资源详情
资源评论
实验一 MATLAB 数字图像处理基本操作
一、实验目的与要求
1.熟悉 MATLAB 软件的开发环境、基本操作以及图像处理工具箱,为编写图像处理程序奠定基础。
2.掌握二值、灰度和彩色图像的读、写和显示方法,以及图像的高、宽、颜色等参数的获取方法。
]
3.根据实验内容进行问题的简单分析和初步编码。
二、实验相关知识
1、Matlab 软件 Image Processing Toolbox 简介
MatLab 的原文是 Matrix Laboratory,它包括若干个工具箱,如 Communications Toolbox、Control
System Toolbox、Neural Network Toolbox、Wavelet Toolbox 等等,其中 Image Processing Toolbox图
像处理工具箱可以完成 Geometric Operations、Enhancement、Color Segmentation、Image Transformation、
Image Analysis、Morphological Operations 等操作。在 MatLab 中,图像就是一个矩阵,在进行处理时
当作一个变量即可,因此运算的书写十分简洁,故 MatLab 有草稿纸式的算法语言之称。例如:
J=I+50; %为原始图像 I 加上一常数 50,并将结果赋予变量 J,其效果相当于得到一幅加亮的图像 J
以此类推可以书写出减法 J=;乘法 J=I*2;除法 J=I/3;等等。
利用 MatLab 提供的 imread 和 imwrite 函数可以完成对图像文件的读写操作,它们所支持的一些常用
的图像文件格式见表 1-1。
表 1-1 MATLAB 支持的一些常用的图像文件格式
描述
可识别的扩展符
(
加标签的图像文件格式
联合图像专家组
图像交换格式
&
.bmp
PNG
XWD
可移植网络图形
X Window 转储
.png
.xwd
MatLab 提供了两种运行方式,即命令行方式和 M 文件方式。打开 MatLab 界面后,在 Command 窗口的
提示符号“>>”下直接键入命令即可运行,如键入:
>>clear %执行本命令将会清除内存中的全部变量
>> figure(1); %生成一个图像窗口 1
>> I=imread('e:'); %将硬盘 e:根目录上的图像文件的数据读入矩阵变量 I 中
—
>> imshow(I); %在当前的图像窗口中显示图像矩阵 I
>> title('原始图像'); %在当前的图像窗口中加上标题
但为了能够对程序进行调试和重复应用,我们要求用 M 文件的方式完成实验中各个程序的编写。
2、数字图像的表示和类别
根据图像数据矩阵解释方法的不同,MATLAB 把其处理为四类:
(1) 亮度图像(Intensity images)
一幅亮度图像是一个数据矩阵,其归一化的取值表示亮度。若亮度图像的像素都是 uint8 类或 uint16
类,则它们的整数值范围分别是[0,255]和[0,65536]。若图像是 double 类,则像素取值就是浮点数。
规定双精度型归一化亮度图像的取值范围是[0,1]。
(2) 二值图像(Binary images)
一幅二值图像是一个取值只有0 和 1 的逻辑数组。而一幅取值只包含 0 和 1 的 uint8 类数组,在 MATLAB
中并不认为是二值图像。使用 logical 函数可以把数值数组转化为逻辑数组,其语法为B=logical(A);其
中 A 是由 0 和 1 构成的数值数组。要测试一个数组是否为逻辑数组,可以使用函数 islogical(C);若 C 是
逻辑数组,则该函数返回 1;否则,返回 0。
(3) 索引图像(Indexed images)
索引颜色通常也称为映射颜色,在这种模式下,颜色都是预先定义的,并且可供选用的一组颜色也很
有限,索引颜色的图像最多只能显示 256 种颜色。一幅索引颜色图像在图像文件里定义,当打开该文件时,
构成该图像具体颜色的索引值就被读入程序里,然后根据索引值找到最终的颜色。
、
(4) RGB 图像(RGB images)
一幅 RGB 图像就是彩色像素的一个 M×N×3 数组,其中每一个彩色像素点都是在特定空间位置上相对
应的红、绿、蓝三个分量。按照惯例,形成一幅 RGB 彩色图像的三个矩阵常称为红、绿或蓝分量图像。令
fR,fG 和 fB 分别代表三种 RGB 分量图像。一幅 RGB 图像就利用 cat(级联)操作将这些分量图像组合成彩
色图像:rgb_image=cat(3,fR,fG,fB) 在操作中,图像按顺序放置。
3、数据类和图像类型间的转化
表 1-2 中列出了 MATLAB 和 Image Processing Toolbox 为表示图像所支持的各种数据类。表中的前 8
项称为数值数据类,第 9 项称为字符类,最后一项称为逻辑数据类。表 1-3 列出了工具箱中提供的一些必
要函数,以便在图像类和数据类之间进行转化。
表 1-2 MATLAB 和 IPT 支持数据类型
描述
双精度浮点数,范围为
308
无符号 8 比特整数,范围为[0 255]
无符号 16 比特整数,范围为[0 65536]
"
uint16
无符号 32 比特整数,范围为[0 95]
有符号 8 比特整数,范围为[-128 127]
有符号 16 比特整数,范围为[-32768 32767]
有符号 32 比特整数,范围为[-48 47]
10 10
int16
int32
>
308
308
char
字符
logical
值 为 0 或 1
表 1-3 格式转换函数
名称
将输入转化为
'
和
和
double
和
im2bw
]
uint8,uint16 和 double
logical
4、常用函数和命令
(1) 读写图像文件
a) imread:用于读入各种图像文件,返回一个矩阵,如:a=imread('d:\')
b) whos:用于读取图像的基本信息,如:whos a
c) imwrite:用于写入图像文件,如:imwrite(a,'d:\',’tif’)
d) imfinfo:用于读取图像文件的有关信息,如:imfinfo('d:\')
(2) 图像的显示
a) image:image 函数是 MATLAB 提供的最原始的图像显示函数,如:
a=[1,2,3,4;4,5,6,7;8,9,10,11]; image(a);
b)
【
imshow:用于图像文件的显示,如:
i=imread('d:\');imshow(i);
c)
d) colorbar:用于显示图像的颜色条,如:i=imread('d:\');imshow(i);colorbar;
e) figure:用于设定图像显示窗口,如:figure(1);figure(2);% n 为图形窗口号数
f) subplot:把图形窗口分成多个矩形部分,每个部分可以分别用来进行显示,如:subplot(m,n,p)
分成 m×n 个小窗口,在第 p 个窗口中创建坐标轴为当前坐标轴,用于显示图形
g) plot:绘制二维图形,如:plot(y);plot(x,y);%x、y 可以是向量、矩阵
(3) 图像类型转换
a) rgb2gray:把真彩图像转换为灰度图像,如:i=rgb2gray(j)
b) im2bw:通过阈值化方法把图像转换为二值图像,如:I=im2bw(j,level)
Level 表示灰度阈值,取值范围 0~1,即表示阈值取自原图像灰度范围的 n%
%
(4) 其它运算函数
a) zeros:生成全 0 数组或矩阵,如:B=zeros(m,n)或 B=zeros([m n]),返回一个m×n 的全 0 矩阵
b) 取整函数:round 四舍五入取整函数;floor 最小取整函数;ceil 最大取整函数,
如:a=[ +]; I=round(a)
输出 I=[-2 0 3 6 2+4i]
三、实验内容
1、读入一幅 RGB 图像(),分别转换为灰度图像和二值图像,并在同一个窗口内分成三
个子窗口来分别显示这三幅图像,注上文字标题,即“原图像”、“灰度图像”、“二值图像”。
subplot(1,3,1);
I=imread('d:\');
imshow(I);
!
title('原图像');
subplot(1,3,2);
J=rgb2gray(I);
imshow(J);
title('灰度图像');
subplot(1,3,3);
Q=im2bw(J,;
imshow(Q);
title('二值图像');
¥
2、说明以下程序的显示结果为何是一幅几乎全黑的图像。
clear; close all;
myi=zeros(20,20);
myi(2:2:18,2:2:18)=1;
myi=uint8(myi);
figure, imshow(myi,'notruesize');
3、阅读分析下列程序,对每条语句给出注释,运行并解释最终执行结果;若将 for 循
环改为方框中的程序,有何不同
clear all;close all;
I=imread('d:\');
[height,width]=size(I);
figure;
;
subplot(2,3,1);
imshow(I);
title('原图像');
L=1;
for m=1:5
?
L=2*L;
quartimage=I(1:L:height,1:L:width
);
subplot(2,3,m+1);
quartimage=zeros(ceil(height/L),ceil(width/L));
k=1;n=1;
for i=1:L:height
for j=1:L:width
quartimage(k,n)=I(i,j);
n=n+1;
end
k=k+1;n=1;
end
subplot(2,3,m+1);
*
imshow(uint8(quartimage));
end
4、编写程序将一幅灰度图像()每两行之间增加一行,即将图像的高度拉伸一倍、宽
度不变,然后将其存储为图像文件。要求拉伸后图像的奇数行对应原图像的各行,偶数行是
剩余15页未读,继续阅读
资源评论
苦茶子12138
- 粉丝: 1w+
- 资源: 6万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- (大赛作品)STM32实现的F072RB NUCLEO智能家居控制.zip
- STM32实现的数字示波器源码+数字信号处理教程、配套实例.zip
- 【cookie续续】【cookie续续】【cookie续续】
- 低功耗STM32实现的F411开发板(原理图+PCB源文件+官方例程+驱动等).zip
- 基于stm32实现的 nucleo-L476的智能灯(操作说明+源码).zip
- 基于STM32实现的 NUCLEO板设计彩色LED照明灯(纯cubeMX开发).zip
- 基于STM32实现的 的联合调试侦听设备解决方案(原理图、PCB源文件、调试工具、视频).zip
- 基于STM32实现的 人群定位、调速智能风扇设计(程序、设计报告、视频演示).zip
- 哔哩下载姬(DownKyi)
- 千纬认字app再次更新,增加部首、笔画动画功能
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功