实验一 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...