实验1MATLAB数字

发布 2022-09-20 21:11:28 阅读 9092

实验一 matlab数字图像处理初步。

一、实验目的。

1、熟悉及掌握在matlab中能够处理哪些格式图像。

2、熟练掌握在matlab中读取图像,并获取图像的大小、颜色、高度、宽度等等相关信息。

3、掌握在matlab中按照指定要求存储一幅图像的方法。

4、熟悉数字图像矩阵的格式转换。

二、实验原理及知识点。

1、数字图像的表示和类别。

一幅图像可以被定义为一个二维函数f(x,y),其中x和y是空间(平面)坐标,f 在任何坐标处(x,y)处的振幅称为图像在该点的亮度。灰度是用来表示黑白图像亮度的一个术语,而彩色图像是由单个二维图像组合形成的。例如,在rgb彩色系统中,一幅彩色图像是由三幅独立的分量图像(红、绿、蓝)组成的。

因此,许多为黑白图像处理开发的技术适用于彩色图像处理,方法是分别处理三副独立的分量图像即可。

图像关于x和y坐标以及振幅连续。要将这样的一幅图像转化为数字形式,就要求数字化坐标和振幅。将坐标值数字化成为取样;将振幅数字化成为量化。

采样和量化的过程如图1所示。因此,当f的x、y分量和振幅都是有限且离散的量时,称该图像为数字图像。

作为matlab基本数据类型的数值数组本身十分适于表达图像,矩阵的元素和图像的像素之间有着十分自然的对应关系。

图1 图像的采样和量化。

根据图像数据矩阵解释方法的不同,matlab把其处理为4类:

亮度图像(intensity images)

二值图像(binary images)

索引图像(indexed images)

rgb图像(rgb images)

1) 亮度图像。

一幅亮度图像是一个数据矩阵,其归一化的取值表示亮度。若亮度图像的像素都是uint8类或uint16类,则它们的整数值范围分别是[0,255]和[0,65536]。若图像是double类,则像素取值就是浮点数。

规定双精度型归一化亮度图像的取值范围是[0,1]

2) 二值图像。

一幅二值图像是一个取值只有0和1的逻辑数组。而一幅取值只包含0和1的uint8类数组,在matlab中并不认为是二值图像。使用logical函数可以把数值数组转化为二值数组或逻辑数组。

创建一个逻辑图像,其语法为:

b=logical(a)

其中,b是由0和1构成的数值数组。

要测试一个数组是否为逻辑数组,可以使用函数:

islogical(c)

若c是逻辑数组,则该函数返回1;否则,返回0。

3) 索引图像。

索引颜色通常也称为映射颜色,在这种模式下,颜色都是预先定义的,并且可供选用的一组颜色也很有限,索引颜色的图像最多只能显示256种颜色。

一幅索引颜色图像在图像文件里定义,当打开该文件时,构成该图像具体颜色的索引值就被读入程序里,然后根据索引值找到最终的颜色。

4) rgb图像。

一幅rgb图像就是彩色像素的一个m×n×3数组,其中每一个彩色相似点都是在特定空间位置的彩色图像相对应的红、绿、蓝三个分量。按照惯例,形成一幅rgb彩色图像的三个图像常称为红、绿或蓝分量图像。

令fr,fg和fb分别代表三种rgb分量图像。一幅rgb图像就利用cat(级联)操作将这些分量图像组合成彩色图像:

rgb_image=cat(3,fr,fg,fb)

在操作中,图像按顺序放置。

2、matlab中相关的函数。

1)图象的输入输出。

imread - 读取图像文件。

imwrite - 保存图像文件。

2)图象的显示。

colorbar - 显示调色板。

colormap -获取或者设置当前例图的调色板。

getimage - 获取当前图像的数据。

imshow -显示图像。

image -显示图像。

imagesc -在限定的灰度范围内显示图像。

imfinfo - 获取图像的文件头信息。

whos - 显示图像的基本信息。

subimage - 显示子图。

三、实验内容及步骤。

1、使用matlab帮助,查看imshow函数的用法。写出imshow函数的语法,对于索引图像,怎样用imshow函数显示。

2、读取图像及其信息。

1) 使用imread()读取图像文件

>>x=imread(‘

2) 使用imshow()显示图像。

>>imshow(x)

3)显示图像的亮度(彩色)条。

>colorbar

4) 获取图像的文件头信息。

>>info=imfinfo(‘ 头文件中有调色板的数据。

思考题 1 :

分别读取索引图像 ‘和‘使用imshow( )imfinfo ( colormap( )等函数。说出图像的大小是多少,其调色板有几种颜色,并正确显示图像。(下图是显示带有色度条的图像)

图象大小为318*522;调色板颜色有256种。

图象大小为269*443;调色板颜色有16种。

注:实验图像数据必须添加上实验者的姓名、学号。)

思考题2 :

读取真彩图‘显示该图像,并读取文件头信息。理解真彩图数据矩阵的含义。

info=imfinfo(''

info =

filename: '

filemoddate: '06-nov-2003 00:25:04'

filesize: 196662

format: 'bmp'

formatversion: 'version 3 (microsoft windows '

width: 256

height: 256

bitdepth: 24

colortype: 'truecolor'

formatsignature: 'bm'

numcolormapentries: 0

colormap: [

redmask: [

greenmask: [

bluemask: [

imagedataoffset: 54

bitmapheadersize: 40

numplanes: 1

compressiontype: 'none'

bitmapsize: 0

horzresolution: 0

vertresolution: 0

numcolorsused: 0

numimportantcolors: 0

3、图像的存储及转换。

1)使用imwrite( )存储图像。

>> x=imread(''

> xx=x(1:128,1:128); 截取图像的一半。

> imwrite(xx,'cameraman_')存储截取后的图像。

> y=imread('cameraman_')

> imshow(y)

(2)图像转换函数。

dither函数:通过颜色抖动来增加输出图像的颜色分辨率,从而实现转换图像。

gray2ind函数:将灰度图像转换成索引图像。

rgb2gray函数:将rgb图像转换为灰度图像。

rgb2ind函数:将rgb图像转换为索引图像。

im2bw函数:将图像转换为二值图像。

以下命令行,是将灰度图像 ''转化为二值图像。

> x=imread(''

> x_bw=im2bw(x); 转化为二值图像。

> imshow(x_bw)

思考题 3:查看帮助,将真彩图‘进行以下转换。

1) 使用rgb2gray函数,转化为灰度图像,并存储为‘c18_

a=imread(''

b=rgb2gray(a);

imshow(b)

2) 使用rgb2ind函数,分别转化为256色、16色的索引图像,正确显示。并和原图进行比较。

256色:c=imread(''

[d,map]=rgb2ind(c,256);

imshow(d,map)

16色:e=imread(''

[f,map]=rgb2ind(e,16);

imshow(f,map)

原图:四、实验报告及要求。

1、按照上述实验步骤把实验结果截图(所有的实验图像标上自己的学号姓名)。

2、回答思考题,写出实现的命令及实验结果截图,分析结果附上文字说明。

3、使用word文档写报告,交电子文档;

实验1MATLAB初步

一 实验目的。1.了解matlab的特点 2.熟悉matlab环境和命令窗口。3 熟悉常用命令的使用方法,尤其是帮助命令 4 掌握matlab二维曲线的绘制 5 掌握三维图和各种特殊图形的绘制。二 实验内容。第一部分 1,建立自己的工作目录,将该目录设为当前目录,并将其设置成matlab的搜索路径。...

实验1Matlab使用

实验1 matlab的使用。no1 一般科学计算。a.计算 5 你的命令 sin 3 exp 2 5 pi你的结果 ans b.设,计算。你的程序 u 1 v 3 sqrt u 3 v 3 v 你的结果 ans 0 0.3143i no2 矩阵的相关运算。c.先将矩阵存入变量中,然后把第2行,第3列...

实验1MATLAB入门 1 复件 1

时间 第 周星期 第 节课号。院系专业。班级批次。姓名学号。1.实验目的 1 了解matlab的体系结构与特点,熟悉其集成开发环境。2 熟悉matlab界面窗口的功能和使用方法。3 熟悉matlab的帮助系统及使用方法。4 了解matlab的的数据类型 基本形式和数组的产生方法。5 掌握matlab...