图像的输入、输出和格式变换.
-
课程设计任务书
学生姓名:
叶伟超
专业班级:
通信
1005
指导教师:
刘新华
工作单位:
信息工程学院
< br>起始条件:
Matlab
软件
数字信号处理相关知识
要求完成的主要任务
:
MATLAB
仿真软件进行图像的输入、输出和格式变换。
要求:读取、保存和显示不同格式的图像
进行图像格式的相互变换如索引图像、
灰度图像、
RGB
图像和二值图像的
相互转换
时间安排:
序
号
阶段内容
所需时间
题
目:利用
MATLAB
仿真软件进行图
像的输入、输出和格式变换
1
2
3
方案设计
软件设计
系统调试
合
计
1
天
2
天
1
天
1
天
5
天
4
答辩
指导教师签名:
年
月
日
系主任(或责任教师)签名:
年
月
日
武汉理工大学《
< br>Matlab
应用》课程设计说明书
目录
1
绪论
.<
/p>
........................................
..................................................
..................................................
......
1
1.1
课题研究的相关背景
.
...............................
..................................................
..........................
1
1.2
选题的目的和意义
.
...............................
..................................................
.............................
1
1.3
课题研究的内容
.
................................
..................................................
................................
2
2 Matlab
图像文件
.
...............................
..................................................
...........................................
3
2.1
Matlab
图像文件简介
.
..........................................
..................................................
.............
3
2.2
Matlab
图像文件类型
.
..........................................
..................................................
.............
4
2.3
Matlab
中图像的存储运算与显示方式
< br>.
...................................
..........................................
7
3
图像的读取与写入
.
..................................
..................................................
......................................
9
3.1
图像的读取
< br>.
...................................
..................................................
......................................
9
3.3
图像文件的写入
.
.................................
..................................................
.............................. 11
4
图像类型与显示
< br>.
...................................
..................................................
.......................................
13
4.1
索引图像及显示
.
< br>............................................... .................................................. ...............
13
4.2
灰度图像及其显示
.
..............................................
..................................................
............
16
4.3
二值图像及其显示
.
..............................................
..................................................
............
18
4.4
RGB
图像及其显示
.
.............................................
..................................................
..............
19
5
图像类型转换
.
....................................
..................................................
..........................................
21
5.1
RGB
转换成灰度图像
.
............................................ .................................................. ...........
21
5.2
灰度图像转换为索引图像
.
...........................................
..................................................
...
22
5.3
灰度图像转化为二值图像
.
...........................................
..................................................
...
23
5.4
RGB
图像转化为索引图像
.
..........................................
..................................................
.....
25
6
收获、体会和建议
.
..................................
..................................................
....................................
26
参考文献:
.
.................................................
..................................................
....................................
27
武汉理工大学《
< br>Matlab
应用》课程设计说明书
摘要
当今的信息化社会,图像是人类赖以获取信息的最重要的来源之一。随着计算机技术的<
/p>
迅猛发展,
图像技术与计算机技术不断融合,
产生了一系列图像处理软件,
如
VC
、
MATLAB
,
这些软件的广泛应
用为图像技术的发展提供了强大的支持。
MATLAB
可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程
语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、
金融建模设计与分析等领域。
本次课程设计介就是
Matlab
环境下的一些最基本的图像处理操作,如读取、保
存和显示
不同格式的图像,并进行图像格式的相互变换如索引图像、灰度图像、
RGB
图像和二值图像
的相互转换。
关键词
:
Matlab
、图像、索引、灰度、相互转换
I
武汉
理工大学《
Matlab
应用》课程设计说明书
Abstract
Today's information-oriented society,
the image is one of the most important sources for
mankind's
access to information. With
the rapid development of computer technology,
image technology and
computer
technology,
continuous
integration,
resulting
in
a
series
of
image
processing
software,
such as VC, MATLAB, these widely used
software provides powerful support for the
development
of image technology.
MATLAB can matrix operations, drawing
functions and data, implementation algorithm to
create
the
user
interface,
connected
to
other
programming
languages
procedures,
mainly
used
in
engineering calculations, control
design, signal processing and communications,
image processing,
signal detection,
financial modeling design analysis and other
fields.
The course design referral
Matlab environment, some of the most basic image
processing operations,
such
as
read,
save
and
display
images
of
different
formats,
and
mutual
transformation
of
image
formats, such as index
images, grayscale images, RGB images, and binary
image conversion.
Keywords:
Matlab, image, index, grayscale,
interconversion
II
武汉理工大学《
Matlab
应用》课程设计说明书
1
绪论
1.1
课题研究的相关背景
数字图像处理是通过计算机对图像进行去除噪声、增强、复原、分割、提取特征等处理
的方法和技术。
数字图像处理的产生和迅速发展主要受三个因素的影响:<
/p>
一是计算机的发展;
二是数学的发展(特别是离散数学理论的创立
和完善)
;
三是广泛的农牧业、林业、环境、军
事、工业和医学等方面的应用需求的增长。
数字图像
处理最早出现于
20
世纪
50
年代,当时的电子计算机已经发展到一定水平,人
们开始利用计算机来处
理图形和图像信息。数字图像处理作为一门学科大约形成于
20
世纪
60
年代初期。早期的图像处理的目的是改善图像的质量,
它以人为对象,以改善人的视觉效
果为目的。图像处理中,输入的是质量低的图像,输出
的是改善质量后的图像,常用的图像
处理方法有图像增强、复原、编码、压缩等。首次获
得实际成功应用的是美国喷气推进实验
室
(
JPL
)
。
他们对航天探测器徘徊
者
7
号在
1964
年发回的几千张月球照片使用了图像处理技
术,如几何校正、灰度变换、去除噪声等
方法进行处理,并考虑了太阳位置和月球环境的影
响,由计算机成功地绘制出月球表面地
图,获得了巨大的成功。随后又对探测飞船发回的近
十万张照片进行更为复杂的图像处理
,以致获得了月球的地形图、彩色图及全景镶嵌图,获
得了非凡的成果,为人类登月创举
奠定了坚实的基础,也推动了数字图像处理这门学科的诞
生。
1.2
选题的目的和意义
课程设计的目的之一是为了巩固课堂理论学习,并能用所学理论知识正确分析信号处理
的基本问题和解释信号处理的基本现象。
课程设
计的目的之二是通过设计具体的图像信号变换掌握图像和信号处理的方法和步
骤。
通过这次课程设计
,
对数字信号处理这门课程有了更深的理解,而且学会了利用
Matlab
进行信号处理,图像处理的应用。而且学会了读取、保存和显示不同格式的图像,并进行图
像格式的相互变换如索引图像、灰度图像、
RGB
图像和二值图像的相互转换。
本文参考了大量的文献,对数字
信号处理,图像处理有了更加深刻的理解,通过详细的
1 <
/p>
武汉理工大学《
Matlab
应用》课程
设计说明书
调查分析,对于了解<
/p>
Matlab
处理信号的技术及其发展状况十分有益。
1.3
课题研究的内容
本课题通过
Matlab
进行图像的综合处理,对图像经行读取、保存和显示。并进
行图像格
式的相互变换如索引图像、灰度图像、
RGB
图像和二值图像的相互转换
通过研究并在设计
后发现,采用
Matlab
进行图像处理,首先,
Maltab
功能强大,第二,
能够提供很强大的信
号处理能力,是目前比较抢答的信号处理软件。
2
武汉理工大学《
Matlab
应用》课程设计说明书
2
Matlab
图像文件
2.1
Matlab
图像文件简介
针对
MATLAB
的数字图像处理功能,我们讨论它可以处理的几种图像文件格式:
(
A
)
PCX
格式。可处理
1
、
4
p>
、
8
、
16
、
24
位等图像数据。文件内容包括文件头<
/p>
、图像
数据、扩展调色板数据。
(
B
)
p>
BMP
格式,即位图文件,整幅图可视为一个数字矩阵。它包括
p>
1
、
4
、
8
、
24
位非压
缩图像,
8
位
RLE
(行程编码)图像。文件内容包含文件头、位图信息数据块和图像数据。选
择
BMP
格式保存一幅灰度模式图像时,可选择以<
/p>
Windows
格式保存。而且在选中
4
位或
8
位
位图
时,还可选压缩(
RLE
)项,在用
R
LE
方式压缩保存后图像将毫无损失。这是用得最广的
图像格式
之一,在本文中都对这种格式的图像进行操作。
(
C
)
HDF
格式。有
8
位,
24
p>
位光栅图像数据集。
< br>(
D
)
JPEG
格式。是一种联合图像专家组的图像压缩格式,是目前所用对静止灰度或彩
色图
像的压缩标准。它实际上定义了
3
种编码系统:
a
.基于
DCT
的有损编码基本系统,可用于绝大多数压缩场合;
b
.用于高压缩比、高精度或渐进重建应用的扩展编码系统;
c
.用于无失真应用场合的无损系统。
JPEG
没有规定文件格式、图像分辨率或所用的彩色空
间模型
,这使它就有可能适用于
MATLAB
。
(
E
)
TIFF
格式。处理
1
、
4
、
8
、
24
位非压缩图像,
1
、
4
、
8
、
24
位
packbit
压缩图像,
1
位
CCITT
压缩图像等。文件内容包括:文件头、参数指针表与参数域、参数数据表和
图像
数据四部分。它是一种用途广泛的文件格式,其特点是可移植性好,几乎所有的扫描
仪及在
Windows
、
Macint
osh
平台上常用的版面设计软件都支持
TIFF
文件格式。以这种格式保存的
图像文件结构比较复杂,在不压缩存放时文件比
较大。
3
武汉理工大学《
Matlab
应用》课程设计说明书
< br>(
F
)
XWD
< br>格式。
1
、
8
< br>位
Zpixmaps, Xybitmaps, 1
位<
/p>
XYPixmaps
。
(
G
)
p>
TGA
格式。处理
1
、
4
、
8
、
16
、
24
位
非压缩图像和行程编码图像。文件包由
5
个固
< br>定长度字段和
3
个可变长度字段组成。
< br>
2.2
Matlab
图像文件类型
MATL
AB
支持五种图像类型,即二值图像、索引图像、灰度图像、
R
GB
图像和多帧图像阵
列。
索引图像:它的数据信息包括一个数据矩阵和一个双精度色图矩阵,它的数据矩阵中的
值直接指定该点的颜色为色图矩阵中的某一种。色图矩阵中,每一行表示一种颜色,每行有
三个数据,分别表示该种颜色中红、绿、蓝的比例情况,所有元素值都在
[0
,
1]
内。
表
2-1
索引图像的特征
双精度类
:Double
整数类:
Unit8
整数类(
Unit16
)
索
(
每个元
素占
8
个字节
)
(
每个元素占
1
个字节
)
(
每个元素占
2
p>
个字节
)
引
<
/p>
图像数组大小:
m
×
n
图
图像元素取值
:[1,p]
像
色度矩阵:
p
×
3
色度元素值:
[0,1]
图
2-1
索引图像对应的色度元素值
图像数组大小:
m
×
n
图像数组大小:
m
×
n
图像元素取值
:[0,p-1]
图像元素取值
:[0,p-1]
色度
矩阵:
p
×
3
色度矩阵:
p
×
3
色度元素值:
[0,255]
色度元素值:
[0,65535]
4
武汉理工大学《
Matlab
应用》课程设计说明书
灰度图像:数据矩阵中的元素值一般都在
[0,1]
或
[0,255]
之间
,灰度图像根据这些数据
利用线性插值来和色图中的颜色种类匹配。灰度图像一般看起来
是一副黑白图像,但是色彩
明暗度较二值图像更为丰富。因为每一个像素点的取值在
p>
[0,1]
或
[0,255]
之间。灰度图像读
入
matlab
< br>中是一个二维的平面矩阵,其中行与列的乘积代表其图片中像素点的个数。
表
2-2
灰度图像的特征
灰
图像数组大小:
< br>m
×
n
度
图像元素值
:[0,1]
图
色度矩阵:
p
×
3
像
色度元素值:
[0,1]
图像数组大小:
m
< br>×
n
图像元素值
:[0,255]
色度矩
阵:
p
×
3
色度元素值:
[0,1]
图像数组大
小:
m
×
n
图像元素值
:[0,65535]
色
度矩阵:
p
×
3
色度元素值:
[0,1]
图
2-2
灰度图像的色度元素值
二值图像:数据矩阵中的元素值只是
0
或
1
。读入
matlab
也是一个二维矩阵。
二值图像读入
m
atlab
中也是一个二维的平面矩阵,但像素点取值只限于
0
,
1
。
表
2-3
二值图像的特征
二
值
p>
图像数组大小:
m
×
n
图
图像元素值:
0
或
1
像
5
<
/p>
图像数组大小:
m
×
n
图像元素值:
0
或
1
武汉理工大学《
M
atlab
应用》课程设计说明书
图
2-3
二值图像的元素值
RGB
图像:图像中每个象素的颜色用三个数据来存储,分别指定红、绿、蓝三
原色在象
素颜色中的比例关系,组成一个三维数组,读入
mat
lab
后是一个三维的矩阵。
RGB
图像就
是采用红、绿、蓝作为三原色的,其中
R
为红色,
G
为绿色,
B
为蓝色。这样这个三维矩阵
A
就可以表示成一
个彩色矩阵,也就是一张数字图像可以在
matlab
中读成一
个矩阵
A
。这个三
维矩阵的第一维就是
上图中第一层代表红色数值,第二维为第二层代表绿色数值,第三维为
第三层代表蓝色数
值。也可以这样理解:将索引图像中的数据矩阵中每一个像素点直接加载
上色图矩阵中对
应的颜色值。
表
2-4
RGB
图像的特征
(
每个元素占
8
个字节
)
(
每个元素占
1
个字节
)
(
每个元素占
2
个字节
)
数组大小:
m
×
n
×
3
真
(:,:,1)
-红色分量
彩
(:,:,2)
-绿色分量
图
(:,:,3)
-蓝色分量
像
元素取值:
[0,1]
(无调色板)
6
双精度类
:Double
整数类:
Unit8
整数类(
Unit16
)
数
组大小:
m
×
n
×
3
(:,:,1)
-红色分量
(:,:,2)
-绿色分量
(:,:,3)
-蓝色分量
元素取值:
[0,255]
(无调色板)
数组大小:
m
×
n
×
3
(:,:,1)
-红色分量
(:,:,2)
-绿色分量
(:,:,3)
-蓝色分量
元素取值:
[0,65535]
(无调色板)
武汉理工大学《
Matlab
应用》课程设计说明书
图
2-4
RGB
图像的色度元素值
2.3
Matlab
中图像的存储运算与显示方式
< br>在
MATLAB
中,
数值一般都
采用
double
型
(
64
位)
存储和运算,
为了节
省存储空间,
MATLAB
为图像提供了特殊的数据类型
uint8
(
8
位无
符号整数)
,
以此方式存储的图像称为
8
位型像。
函数
image
能够直接显示
8
位图像,但
8
位型数据和
double
型数据在
image
中意义不一样,
对于索引图
像,数据矩阵中的值指定该像素的颜色种类在色图矩阵中的行数。当数据矩阵中
的值为<
/p>
0
时,表示用色图矩阵中第一行表示的颜色绘制;当数据矩阵中的
值为
1
时,表示用
色图矩阵中的第二行
表示的颜色绘制该像素,数据与色图矩阵中的行数总是相差
1
。
所以,
索引图像
double
型和
p>
uint8
型在显示方法上没有什么不同,
只是
8
位数据矩阵的值和颜色种
类之间
有一个偏差
1
。调用格式均为
imag
e(x); colormap(map);
对于灰度图像,
u
int8
表示
范围
[0
,
255]
,
double<
/p>
型表示范围
[0
,
1]
。可见,
double
型和
p>
uint8
型灰度图像不一样,二
者转换格
式为:
I8=uint8 (round
(I64*255));
I64=double (I8)/255;
反之,
imread
根据文件中的图像种类作不同的
处理。当文件中的图像为灰度图像时,
imread
把图像存入
一个
8
位矩阵中,
把色图矩阵转换为双
精度矩阵,
矩阵中每个元素值在
[0
,
1]
内;当为
RGB
< br>图像时,
imread
把数据存入到一个
8
位
RGB
矩阵中。
7
武汉理工大学
《
Matlab
应用》课程设计说明书
本软件的处理统一针对
BMP
格式的灰度图。在编程时图像读入与输出均要求转换
为
uint8
型,中间运算处理过程则要用
double
型。
8
<
/p>
武汉理工大学《
Matlab
应用》课程
设计说明书
3
图像的读取与写入
3.1
图像的读取
函数
imread
用来读取图像,把图像数据读取出来以后,可以赋给一个变量。其一调用格
式
如下:
A=imread(filename,fmt)
[X,map]=imread(
…
)
[
…
]=imread(filename)
[
…
]=imrea
d(URL,
…
)
[
…
]=imread(
…
,Paraml,Vall,Param2,Val
…
)
但在
Matlab
中
imread
的最基本调用格式是:
A=imread(filename,fmt)
其中,
fi
lename
为需要读取的图形文件名。
fmt
为图像格式(可以是
JPG/JPEG
、
TIF/TIFF
、
GIF
、
BMP
、
PNG
、
HDF
、
PCX
、
XVD
、
CUR
和
IC0
)
,如果不指定
fmt
参数,则系统根据文件名自
动判
断图像类型。输出参数
X
表示存储图像数据的矩阵名,若图像为
索引图像,
map
为该图
像的调色板。
在应用中,
可以通过使用
imread
函数在线帮助来获得最新的图像文件格式及其
位深度信息。
p>
imread
还可以分帧读取一个多帧图
像文件。例如,以下语句将读取,
rice
。
< br>Png
文件的
第
5
帧图像:
I= imread(
< br>‘
’
);
I(;,5)
大多数图像文件格式采用
8
位数据存储像素值,将这些文件读入内存后,
Matlab
R2009a
都将其存储为
uint8
类型。对于支持
16
位数据的文件格式
,如
PNG
和
TIFF
,
Matlab R2009a
则将这些图像存储为
uint16
类型。和其他
Matla
b
R2009a
生成的图像一样,一旦一副图像被
显示了,
那么它将成为一个图形对象句柄。
例如一
下代码将图像
读入
Matlab
p>
R2009a
工作平台,读取数据矩阵变为变量
RGB
:
>>RGB
=imread(
‘
F:
’
)
9
武汉理工大学
《
Matlab
应用》课程设计说明书
需要注意的是,
对于索引图像来说,
即使调色板数据本身为
uint8
或<
/p>
uint16
类型,
imread
函数仍然将颜色映像表读取,并存储到一个双精度浮点类型的数据中。
【例】
I=imread('E:');
%
图像数据的读取,将图像数据放入矩阵
A
中,颜色数据放入
矩阵
M
中
i
mshow(I);title('
原图像
');
图
2-1
inread
举例说明
10
武汉理工大学《
Matlab
应用》课程设计说明书
3.3
图像文件的写入
Matlab R2009a
中,可用
imwrite
来完成图像文件的写入操作。其调用格式如下:
imwrite(A,filename,fmt)
imwirte(X,map,filename,fmt)
imwirte(
…
,filename)
< br>imwrite(
…
,Paraml,Vall,Par
am2,Val2
…
)
第二条为其基
本调用格式。其中,
X
为索引图像名,
map
为调色板,
filename
为
写入文
件,
fmt
为存储格式。如果指
定的图像
X
为
uint8
或者
uint16
位的,那么
imwrite
将按指定的
格式显示原图像。如果
X
是双精度的,在用
uint8(X-1)
写图像时,
imwrite
函数将自动补偿阵
列的数值。
例如,以下语句将根据<
/p>
MAP
格式(
Matlab
数据文件格式)装载图像,然后保存为一帧
包含小丑图像的
< br>JPG
文件:
>>load
clown
>>imwrite(X,map,
’
’
)
此外,
在
Matlab R2009a
中,
显示一幅图像还可以用
image
函数,
这个函数将创建一个图
像对象句
柄,其调用格式如下:
image(C)
image(x,y,C)
image(x,y,C,
’
PropertyName
’
,PropetryValue,
…
)
image(
‘
PropertyName
’
,PropertyValue,..)
handle=image(
…
) <
/p>
其中,
x
、
y<
/p>
分别表示图像显示位置的左上角坐标,
C
表示所需显示的图像。
函数
imagesc
与
image
函数类似,但是它可以自动标度输入数据。下
面是用
image
函数来显示一幅图像,
效果如图
3-2
所示。
11
武汉理工大学《
Matlab
应用》课程设计说明书
图
3-2
image
函数显示图像
>>figure
ax(1)=subplot(1,2,1);
rgb=imread('E:');
image(rgb);title('RGB image')
ax(2)=subplot(1,2,2);
im=mean(rgb,3);
image(im);title('Intensity Heat Map')
colormap(hot(256))
linkaxes(ax,'xy')
axis(ax,'image')
12