图像一实验报告
- 格式:doc
- 大小:2.25 MB
- 文档页数:11
实验一Matlab语言数字图像基本操作
一、实验目的
1.复习MATLAB语言的基本用法;
2.掌握MATLAB语言中图像数据与信息的读取方法。
二、实验原理
MATLAB是集数值计算,符号运算及图像处理等强大功能与一体的科学计算语言。作为强大的科学计算平台,它几乎能够满足所以的计算需求。MATLAB 软件具有很强的开放性和适用性。在保持内核不变的情况下,MATLAB可以针对不同的应用学科推出相应的工具箱(Toolbox)。目前,MATLAB已经把工具箱延伸到了科学研究和工程应用等诸多领域,诸如数据采集、概率统计、信号处理、图像处理和物理仿真等,都在工具箱(Toolbox)家族有自己的一席之地。在实验中我们主要用到MATLAB提供图像处理工具箱(Image Processing Toolbox)。1.MATLAB与数字图象处理
MATLAB全称是Matrix Laboratory(矩阵实验室),一开始它是一种专门用于矩阵数值计算的软件,从这一点上也可以看出,它在矩阵运算上有自己独特的特点。实际上MATLAB中的绝大多数的运算都是通过矩阵这一形式进行的。这一特点也就决定了MATLAB在处理数字图像上的独特优势。理论上讲,图像是一种二维的连续函数,然而在计算机上对图像进行数字处理的
时候,首先必须对其在空间和亮度上进行数字化,这就是图像的采样和量化过程。二维图像进行均匀采样,就可以得到一幅离散化成M*N样本的数字图像,该数字图像是一个整数列阵,因而用矩阵来描述该数字图像是最直观最简便的了。而MATLAB的长处就是处理矩阵运算,因而用MATLAB处理数字图像非常的方便。MATLAB支持五种图像类型,既索引图像、灰度图像、二值图像、RGB图像和多帧图像阵列;支持BMP、GIF、HDF、JPEG、PCX、PNG、TIFF、XWD、CUR、ICO等图像文件的读,写和显示。MATLAB对图像的处理功能主要集中在它的图像处理工具箱(Image Pricessing Toolbox)中。图像处理工具箱是由一系列支持图像处理操作的函数组成,可以进行诸如几何操作、线性滤波和滤波器设计、图像变换、图像分析与图像增强、二值图像操作以及形态学处理等图像处理操作。
2.MATLAB语言的基本操作
MATLAB语言是一种运算纸型的运算语言,其特点就是与平时在运算纸上书写运算的形式相同,这使得它成为一种比较容易掌握的语言;其变量均以矩阵向量形式表示(单独一个数据可以认为是一维向量);其程序语法类似于C语言,只要有一点C 语言基础的人可以很快掌握。针对数字图像处理的需要,可以重点掌握以下几个内容:矩阵。向量的输入好人操作(包括如何输入一个矩阵,如何产生一个全零全一的矩阵,如何对一个矩阵的行列元素进行读取、写入);矩阵与向量的基本运算(包括加、
减、点乘等)。
以下主要介绍以下如何读取矩阵的指定行或指定列,举例说明:
x=4:6 %产生一个一位数组,范围从4到6,步长为1
x=
4 5 6
插入:通过对x进行插入运算创建矩阵A
>>A=[x-3;x;x+3] %当然也可以用别的方法产生A矩阵此处只作为示例
A=
1 2 3
4 5 6
7 8 9
提取:提取A的前两行和后两列形成矩阵C
>>C=A(1:2,2:3)
C=
2 3
5 6
置零:将矩阵A的第二行第二列的元素置零
>>A(2,2)=0
A=
1 2 3
4 0 6
7 8 9
将矩阵A的第一列全置1
A(:,1)=1
A=
1 2 3
1 0 6
1 8 9
强调一下矩阵的乘法和矩阵的点乘的不同,举例说明:
A=eye(2) %产生二维单位矩阵
A=
1 0
0 1
>>B=[1,2;3,4] %直接法输入矩阵
B=
1 2
3 4
>>A+B %求A和B的和(符合矩阵求和规则)
ans=
2 2
3 5
>>A.*B %求A和B的点积(即两矩阵中对应元素分别相乘)
ans=
1 0
0 4
>>A*B %求A与B的乘积(符合矩阵乘积原则A的列数与B 的行数相等)
ans=
1 2
3 4
三.实验内容
1.文件的读取
A=imread('a.JPG');
imshow(A);
2.写入
3.信息查询
info=imfinfo('a.jpg')
4.添加色带
A=imread('a.JPG');
imshow(A);
Colorbar
10
20
30
40
50
60
5.划分显示区域 A=imread('a.JPG'); imshow(A);
B=imread('b.JPG'); imshow(B); subplot(1,2,1); imshow(A); subplot(1,2,2); imshow(B);
6. 改变图像大小
A=imread('a.JPG'); B=imresize(A,5); imshow(B)
7. 图像的旋转
A=imread('a.JPG');
B=imrotate(A,60);
imshow(B);
8.图象的剪切
A=imread('a.JPG');
X2=imcrop(A,[100,200,300,400]); imshow(X2);