matlab绘制二维间断图像,[转]MATLAB的图像实验

实验一 Matlab语言、数字图象基本操作

一、实验目的

1、复习MATLAB语言的基本用法;

2、掌握MATLAB语言中图象数据与信息的读取方法;

3、掌握在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

Processing

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

注意:请大家在E盘建一个目录(imp),在每次启动时都要将这个目录加入到MATLAB的搜索路径中,添加的方法为File----Set

Path----Tool---Add Path

3、MATLAB中图象数据的读取

A、 imread

imread函数用于读入各种图象文件,其一般的用法为

[X,MAP]=imread(‘filename’,‘fmt’)

其中,X,MAP分别为读出的图象数据和颜色表数据,fmt为图象的格式,filename为读取的图象文件(可以加上文件的路径)。

例:[X,MAP]=imread(’flowers.tif’,’tif’);

B、 imwrite

imwrite函数用于输出图象,其语法格式为:

imwrite(X,map,filename,fmt)按照fmt指定的格式将图象数据矩阵X和调色板map写入文件filename。

C、 imfinfo

imfinfo函数用于读取图象文件的有关信息,其语法格式为

imfinfo(filename,fmt)

imfinfo函数返回一个结构info,它反映了该图象的各方面信息,其主要数据包括:文件名(路径)、文件格式、文件格式版本号、文件的修改时间、文件的大小、文件的长度、文件的宽度、每个像素的位数、图象的类型等。

例:

imfinfo('rice.tif')

ans =

Filename:

'C:\MATLAB6p5\toolbox\images\imdemos\rice.tif'

FileModDate: '26-Oct-1996 06:11:58'

FileSize: 65966

Format: 'tif'

FormatVersion: []

Width: 256

Height: 256

BitDepth: 8

ColorType: 'grayscale'

FormatSignature: [73 73 42 0]

ByteOrder: 'little-endian'

NewSubfileType: 0

BitsPerSample: 8

Compression: 'Uncompressed'

PhotometricInterpretation: 'BlackIsZero'

StripOffsets: [8x1 double]

SamplesPerPixel: 1

RowsPerStrip: 32

StripByteCounts: [8x1 double]

XResolution: 72

YResolution: 72

ResolutionUnit: 'Inch'

Colormap: []

PlanarConfiguration: 'Chunky'

TileWidth: []

TileLength: []

TileOffsets: []

TileByteCounts: []

Orientation: 1

FillOrder: 1

GrayResponseUnit: 0.0100

MaxSamplev alue: 255

MinSamplev alue: 0

Thresholding: 1

ImageDescription: [1x166 char]

<
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值