多媒体技术数字图像的初步操作.docx

上传人:b****1 文档编号:1857841 上传时间:2023-05-01 格式:DOCX 页数:16 大小:87KB
下载 相关 举报
多媒体技术数字图像的初步操作.docx_第1页
第1页 / 共16页
多媒体技术数字图像的初步操作.docx_第2页
第2页 / 共16页
多媒体技术数字图像的初步操作.docx_第3页
第3页 / 共16页
多媒体技术数字图像的初步操作.docx_第4页
第4页 / 共16页
多媒体技术数字图像的初步操作.docx_第5页
第5页 / 共16页
多媒体技术数字图像的初步操作.docx_第6页
第6页 / 共16页
多媒体技术数字图像的初步操作.docx_第7页
第7页 / 共16页
多媒体技术数字图像的初步操作.docx_第8页
第8页 / 共16页
多媒体技术数字图像的初步操作.docx_第9页
第9页 / 共16页
多媒体技术数字图像的初步操作.docx_第10页
第10页 / 共16页
多媒体技术数字图像的初步操作.docx_第11页
第11页 / 共16页
多媒体技术数字图像的初步操作.docx_第12页
第12页 / 共16页
多媒体技术数字图像的初步操作.docx_第13页
第13页 / 共16页
多媒体技术数字图像的初步操作.docx_第14页
第14页 / 共16页
多媒体技术数字图像的初步操作.docx_第15页
第15页 / 共16页
多媒体技术数字图像的初步操作.docx_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

多媒体技术数字图像的初步操作.docx

《多媒体技术数字图像的初步操作.docx》由会员分享,可在线阅读,更多相关《多媒体技术数字图像的初步操作.docx(16页珍藏版)》请在冰点文库上搜索。

多媒体技术数字图像的初步操作.docx

多媒体技术数字图像的初步操作

实验二数字图像的初步操作

一、实验目的

1、初步掌握MATLAB语言的基本用法

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

3、掌握图像的基本类型,了解常用图像格式:

数据的格式,有图像和示例,图像类型之间的转换,图像的基本存储格式

4、掌握在MATLAB中绘制灰度直方图的方法。

二、实验原理

MATLAB是集数值计算,符号运算及图形处理等强大功能于一体的科学计算语言。

作为强大的科学计算平台,它几乎能够满足所有的计算需求。

MATLAB软件具有很强的开放性和适用性。

在保持内核不便的情况下,MATLAB可以针对不同的应用学科推出相应的工具箱(toolbox)。

目前,MATLAB已经把工具箱延伸到了科学研究和工程应用的诸多领域,诸如数据采集、概率统计、信号处理、图像处理和物理仿真等,都在工具箱(Toolbox)家族中有自己的一席之地。

在实验中我们主要用到MATLAB提供图像处理工具箱(ImageProcessingToolbox)。

1、MATLAB与数字图像处理

MATLAB全称是MatrixLaboratory(矩阵实验室),一开始它是一种专门用于矩阵数值计算的软件,从这一点上也可以看出,它在矩阵运算上有自己独特的特点。

实际上MATLAB中的绝大多数的运算都是通过矩阵这一形式进行的。

这一特点也就决定了MATLAB在处理数字图像上的独特优势。

理论上讲,图像是一种二维的连续函数,然而在计算机上对图像进行数字处理的时候,首先必须对其在空间和亮度上进行数字化,这就是图像的采样和量化的过程。

二维图像进行均匀采样,就可以得到一幅离散化成M×N样本的数字图像,该数字图像是一个整数阵列,因而用矩阵来描述该数字图像是最直观最简便的了。

而MATLAB的长处就是处理矩阵运算,因此用MATLAB处理数字图像非常的方便。

MATLAB支持五种图像类型,即索引图像、灰度图像、二值图像、RGB图像和多帧图像阵列;支持BMP、GIF、HDF、JPEG、PCX、PNG、TIFF、XWD、CUR、ICO等图像文件格式的读,写和显示。

MATLAB对图像的处理功能主要集中在它的图像处理工具箱(ImageProcessingToolbox)中。

图像处理工具箱是由一系列支持图像处理操作的函数组成,可以进行诸如几何操作、线性滤波和滤波器设计、图像变换、图像分析与图像增强、二值图像操作以及形态学处理等图像处理操作。

2、图像的基本类型和常见格式

首先介绍一个重要概念重要概念,调色板,它是包含不同颜色的颜色表,每一种颜色以红绿蓝三种颜色的组合来表示,图像的每一个像素对应一个数字,而该数字对应调色板重点一种颜色,如某像素值为1表示给颜色为调色板的编号为1的颜色。

调色板的单元个数是与图像的颜色书相对应当,256色图像的调色板就有256各单元。

真彩色图像的每个像素值直接用RGB三个字节来表示颜色,因此不需要调色板。

注意对于16色或256色图像并非全部的图像都采用相同的16中或256中颜色,由于调色板中定义的颜色不同用到的颜色是千差万别的,所谓16色或256色,只是表示该幅图像最多只能有16种颜色或256种颜色,不同的图像有不同的调色板。

图像格式指的是存储图像采用的文件格式。

不同的操作系统,不同的图像处理软件所支持的图像格式都有可能不同。

实际应用中经常会见到以下几种图像格式:

●BMP格式:

BMP格式是Windows操作系统中的标准图像文件格式,能够被多种Windows应用程序所支持,并被广泛应用。

这种格式的特点是包含的图像信息较丰富,几乎不进行压缩,但由此导致了它与生俱生来的缺点——占用磁盘空间过大。

它有这样一些特点:

该结构只能存放一幅图像;只能存储四种图像数据:

单色16色256色真彩色;图像数据有压缩或不压缩两种处理方式;调色板的数据存储结构较为特殊,其存储格式不是固定的,而是与文件头的某些具体参数密切相关。

BMP图像文件的文件结构可分为三部分:

表头调色板和图像数据.表头固定54字节,只有真彩色BMP图像文件内没有调色板数据,其余不超过256种颜色的图像文件都必须色定调色板信息。

●GIF格式:

GIF格式是美国一家著名的在线信息服务机构CompuServe针对当时网络传输带宽的限制,开发出的一种图像格式。

它的特点是压缩比高,磁盘空间占用较少,所以这种图像格式迅速得到了广泛的应用。

最初的GIF只是简单地用来存储单幅静止图像(称为GIF87a),后来随着技术发展,可以同时存储若干幅静止图像进而形成连续的动画,使之成为当时支持2D动画为数不多的格式之一(称为GIF89a),而在GIF89a图像中可指定透明区域,使图像具有非同一般的显示效果,这更使GIF风光十足。

但GIF有个小小的缺点,即不能存储超过256色的图像。

此外,考虑到网络传输中的实际情况,GIF图像格式还增加了渐显方式,即在图像传输过程中,用户可以先看到图像的大致轮廓,然后随着传输过程的继续而逐步看清图像中的细节部分,从而适应了用户的“从朦胧到清楚”的观赏心理。

●JPEG格式与JPEG2000格式:

JPEG格式也是常见的一种图像格式,由联合图像专家小组开发。

它用有损压缩方式去除冗余的图像和彩色数据,获取得极高的压缩率的同时能展现十分丰富生动的图像,即可以用最少的磁盘空间得到较好的图像质量。

同时,JPEG格式具有调节图像质量的功能,允许用不同的压缩比例对这种文件压缩,比如我们最高可以把1.37MB的BMP位图文件压缩至20.3KB。

实际使用中,需要我们在图像质量和文件尺寸之间找到平衡点。

JPEG2000格式作为JPEG格式的升级版,其压缩率比JPEG高约30%左右。

与JPEG不同的是,JPEG2000同时支持有损和无损压缩。

此外,JPEG2000的一个极其重要的特征在于它能实现渐进传输,这一点与GIF的“渐显”有异曲同工之妙,即先传输图像的轮廓,然后逐步传输数据,不断提高图像质量,让图像由朦胧到清晰显示,而不必是像原来的JPEG一样,由上到下慢慢显示。

●TIFF格式:

TIFF格式是苹果机中广泛使用的图像格式,它由Aldus和微软联合开发,最初是出于跨平台存储扫描图像的需要而设计的。

它的特点是图像格式复杂、存贮信息多,便于在Mac和PC机上移植。

正因为它存储的图像细微层次的信息非常多,图像的质量也得以提高,故而非常有利于原稿的复制。

该格式有压缩和非压缩二种形式。

●PSD格式:

PSD格式是著名的Adobe公司的图像处理软件Photoshop的专用格式。

它其实是Photoshop进行平面设计的一张“草稿图”,它里面包含有各种图层、通道和遮罩等多种设计的样稿,以便于每次打开文件时可以修改前一次的设计。

在Photoshop所支持的各种图像格式中,PSD的存取速度比其它格式快很多,功能也很强大。

●PNG格式:

PNG格式是一种新兴的网络图像格式。

在1994年底,由于Unysis公司宣布GIF拥有专利的压缩方法,要求开发GIF软件的作者须缴交一定费用,由此促使免费的PNG图像格式的诞生。

1996年由PNG向国际网络联盟提出并得到推荐认可标准,目前大部分绘图软件和浏览器开始支持PNG格式图像浏览。

PNG格式是目前保证最不失真的格式,它汲取了GIF和JPG二者的优点,存贮形式丰富,兼有GIF和JPG的色彩模式;能把图像文件压缩到极限以利于网络传输,但又能保留所有与图像品质有关的信息,因为PNG格式是采用无损压缩方式来减少文件的大小,这一点与牺牲图像品质以换取格式高压缩率的JPG格式有所不同;它显示速度很快,只需下载1/64的图像信息就可以显示出低分辨率的预览图像;PNG格式同样支持透明图像的制作,让图像和网页背景很和谐地融合在一起。

PNG的缺点是不支持动画应用效果,如果在这方面能有所加强,简直就可以完全替代GIF和JPEG了。

Macromedia公司的Fireworks软件的默认格式就是PNG。

●SVG格式:

SVG格式是基于XML,由WorldWideWebConsortium(W3C)联盟进行开发的。

严格来说应该是一种开放标准的矢量图形语言,用户可以直接用代码来描绘图像,可以用任何文字处理工具打开SVG图像,通过改变部分代码来使图像具有交互功能,并可以随时插入到HTML中通过浏览器来观看。

它提供了目前网络流行格式GIF和JPEG无法具备的优势:

可以任意放大图形显示,但绝不会以牺牲图像质量为代价;字在SVG图像中保留可编辑和可搜寻的状态;SVG文件比JPEG和GIF格式的文件要小很多,因而下载更快。

●其它非主流图像格式:

ØPCX格式:

PCX格式是ZSOFT公司在开发图像处理软件Paintbrush时开发的一种格式,这是一种经过压缩的格式,占用磁盘空间较少。

由于该格式出现的时间较长,并且具有压缩及全彩色的能力,所以现在仍比较流行。

ØDXF格式:

DXF格式是AutoCAD中的矢量文件格式,它以ASCII码方式存储文件,在表现图形的大小方面十分精确。

许多软件都支持DXF格式的输入与输出。

ØWMF格式:

WMF是Windows中常见的一种图元文件格式,属于矢量文件格式。

它具有文件短小、图案造型化的特点,整个图形常由各个独立的组成部分拼接而成,其图形往往较粗糙。

ØEMF格式:

EMF格式是微软公司为了弥补使用WMF的不足而开发的一种Windows32位扩展图元文件格式,也属于矢量文件格式,其目的是欲使图元文件更加容易接受。

ØEPS格式:

EPS是苹果机用户用得较多的一种格式。

它是用PostScript语言描述的一种ASCII码文件格式,主要用于排版、打印等输出工作。

ØTGA格式:

TGA格式是由美国Truevision公司为其显示卡开发的一种图像文件格式,已被国际上的图形图像工业所接受。

TGA的结构比较简单,属于一种图形图像数据的通用格式,在多媒体领域有着很大影响,是计算机生成图像向电视转换的一种首选格式。

图像类型是指数组数值与像素颜色之间定义的关系,注意其与图像格式概念的区别。

各类型的特点和区别见教材P4-6。

3、MATLAB语言的基本操作

MATLAB语言是一种运算纸型的运算语言,其特点就是与平时在运算纸上书写运算的形式相同,这使得它成为一种比较容易掌握的语言;其变量均以矩阵向量形式表示(单独一个数据可以认为是一维向量);其程序语法类似于C语言,只要有一点C语言基础的人可以很快掌握。

针对数字图像处理的需要,可以重点掌握以下几个内容:

矩阵、向量的输入和操作(包括如何输入一个矩阵,如何产生一个全零全一的矩阵,如何对一个矩阵的行列元素进行读取、写入);矩阵与向量的基本运算(包括加、减、点乘等)

主要介绍一下如何读取矩阵的指定行或指定列,举例说明:

x=4:

6%产生一个一维数组,范围从4到6,步长为1

x=

456

插入:

通过对x进行插入运算创建矩阵A

>>A=[x-3;x;x+3]%当然也可以用别的方法产生A矩阵此处只作为示例

A=

123

456

789

提取:

提取A的前两行和后两列形成矩阵C。

>>C=A(1:

2,2:

3)

C=

23

56

置零:

将矩阵A的第二行第二列的元素置零

>>A(2,2)=0

A=

123

406

789

将矩阵A的第一列全置1

A(:

1)=1

A=

123

106

189

强调一下矩阵的乘法与矩阵的点乘的不同,举例说明:

A=eye

(2)%产生二维单位矩阵

A=

10

01

>>B=[1,2;3,4]%直接法输入矩阵

B=

12

34

>>A+B%求A与B的和(符合矩阵求和原则)

ans=

22

35

>>A.*B%求A与B的点积(即两矩阵中对应元素分别相乘

ans=

10

04

>>A*B%求A与B的乘积(符合矩阵乘积原则A的列数与B的行数相等)

ans=

12

34

其他的一些用法请参考资料《matlab简单教程》。

注意:

由于实验室的管理规定所有的程序不能存在C盘和D盘,因此请大家在E盘建一个目录(matlab),在每次启动时都要将这个目录加入到MATLAB的搜索路径中,添加的方法为File----SetPath----Tool---AddPath

4、MATLAB中图像处理的一些简单函数

A、imread

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

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

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

例:

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

比较读取二值图像,灰度图像,索引图像,彩色图像的X和MAP的特点,可以利用size函数用来显示数组的维数,了解数据的特点。

B=size(a)返回数组a的维数。

B、imwrite

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

imwrite(X,map,filename,fmt)

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

C、imfinfo

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

imfinfo(filename,fmt)

imfinfo函数返回一个结构info,它反映了该图像的各方面信息,其主要数据包括:

文件名(路径)、文件格式、文件格式版本号、文件的修改时间、文件的大小、文件的长度、文件的宽度、每个像素的位数、图像的类型等。

例:

imfinfo('rice.tif')

ans=

Filename:

'D:

\MATLAB6p1\toolbox\images\imdemos\rice.tif'

FileModDate:

'26-Oct-199606:

11:

58'

FileSize:

65966

Format:

'tif'

FormatVersion:

[]

Width:

256

Height:

256

BitDepth:

8

ColorType:

'grayscale'

FormatSignature:

[7373420]

ByteOrder:

'little-endian'

NewSubfileType:

0

BitsPerSample:

8

Compression:

'Uncompressed'

PhotometricInterpretation:

'BlackIsZero'

StripOffsets:

[8x1double]

SamplesPerPixel:

1

RowsPerStrip:

32

StripByteCounts:

[8x1double]

XResolution:

72

YResolution:

72

ResolutionUnit:

'Inch'

Colormap:

[]

PlanarConfiguration:

'Chunky'

TileWidth:

[]

TileLength:

[]

TileOffsets:

[]

TileByteCounts:

[]

Orientation:

1

FillOrder:

1

GrayResponseUnit:

0.0100

MaxSampleValue:

255

MinSampleValue:

0

Thresholding:

1

ImageDescription:

[1x166char]

 

5、MATLAB中图像文件的显示

imshow

imshow函数是最常用的显示各种图像的函数,其语法如下:

imshow(X,map)

其中X是图像数据矩阵,map是其对应的颜色矩阵,若进行图像处理后不知道图像数据的值域可以用[]代替map。

(1)二进制(二值)图像显示方法,在MATLAB中一幅二值图像是uint8或双精度的,该矩阵仅包含0和1。

如果希望工具箱中的函数能将图像理解为二进制的,那么所有数据都要是逻辑数据,必须对其进行设置(将所有数据标志均设置on).可以对数据利用“~”取反操作实现图像逆转即黑白反色。

(2)灰度图像的显示方法,正常情况下无需指定灰度图像的调色板格式。

可以是使用imshow函数指定要显示灰度级数目,格式imshow(I,n),n为指定的灰度级数目。

用户也可以指定数据的范围,格式imshow(I,[lowhigh])其中low和high参数分别为数据数组的最小值和最大值。

如果为空矩阵([]),那么imshow函数将自动进行数据标度。

(3)索引图像,imshow(x,map)对于x的每个个像素,imshow显示存储map中相应行的颜色。

(4)RGB图像的显示,它直接对颜色进行描述而不使用调色板,格式imshow(RGB)。

RGB(:

,:

,1)RGB(:

,:

,2)RGB(:

,:

,3)

(5)

特殊显示,如多幅图像的显示,需要显示多幅图像时。

可以使用figure语句,它的功能就是重新打开一个图像显示窗口。

例:

I=imread(‘rice.tif’);

Imshow(I);

J=imread(‘flowers.tif’);

figure,imshow(J);

 

也可以将多幅图像显示在同一个单独的图像窗口中,有两种方法:

一种是联合imshow和subplot函数;另一种是联合使用subimage函数和subplot函数,subplot(m,n,p)这种格式将图形窗口划分为m*n个矩形显示区域并激活第p个显示区域。

A

[x1,map1]=imread('trees.tif');

[x2,map2]=imread('forest.tif');

subplot(1,2,1),imshow(x1,map1)

subplot(1,2,2),imshow(x2,map2)

B

[x1,map1]=imread('trees.tif');

[x2,map2]=imread('forest.tif');

subplot(1,2,1),subimage(x1,map1)

subplot(1,2,2),subimage(x2,map2)

6、MATLAB中灰度直方图的显示

MATLAB图像处理工具箱提供了imhist函数来计算和显示图像的直方图,imhist函数的语法格式为:

imhist(I,n)

imhist(X,map)

其中imhist(I,n)计算和显示灰度图像I的直方图,n为指定的灰度级数目,默认值为256。

imhist(X,map)计算和显示索引色图像X的直方图,map为调色板。

例:

I=imread('rice.tif');

imshow(I)

figure,imhist(I)

6、图像类型转换:

图像类型之间的转换有时非常有用。

MATLAB提供的图像类型转换函数

函数

功能

dither

使用抖动方法,根据灰度图像船舰二进制图像和根据RGB图像创建索引图像

gray2ind

根据一幅灰度图像创建索引图像

grayslice

使用阈值截取方法,根据一幅灰度图像创建索引图像

im2bw

使用阈值截取方法,根据一幅灰度图像,索引图像或RGB图像创建二进制图像

ind2gray

根据一幅索引图像创建一幅灰度图像

ind2rgb

根据一幅索引图像创建一幅RGB图像

mat2gray

通过数据缩放,在根据矩阵数据创建一幅灰度图像

rgb2gray

根据一幅RGB图像创建一幅灰度图像

rgb2ind

根据一幅RGB图像创建一幅索引图像

上表中函数有类似的调用格式:

函数的输入参数是图像数据矩阵(如果是索引图像,那么输入参数还包括调色板),返回值是转换后的函数(包括索引函数的调色板),只有函数im2bw的调用格式不同,其输入参数中还包括一个截取阈值,超过此阈值的像素被截取为1否则为0。

示例:

A、loadtrees

BW=im2bw(X,map,0.4);

imview(X,map),imview(BW)

B、

I=imread('snowflakes.png');

X=grayslice(I,16);

imview(I)

imview(X,jet(16))

7、MATLAB还提供了图像存储类型之间的转换函数,这些函数包含im2doble、im2uint8

和im2uint16,这些函数可以自动的进行原始数据的重新标度和偏移.调用格式简单,输入为图像矩阵,输出为转换后的图像:

如:

以下命令将一个描述双精度RGB1图像的矩阵(数据范围为[0,1]转换为uint8的图像矩阵([0,255]范围内)RGB2=im2uint8(rgb1);也可以使用MATLAB函数对图像存储类型进行转换。

例如,double函数可以将uint8或uint16的数据转化为双精度数据。

存储类型之间的转变将改变matlab及其工具箱理解图像数据的方式,如果用户希望转换后得到的数组能够被正确的理解为图像数据,那么转换时需要重新标度或偏移数据。

当使用较少的类型来描述数字图像时,通常可能丢失用户图像的一些信息。

9、图像格式之间的转换,可以间接利用图像读写函数来完成;首先使用imread函数按照原有的图像格式进行图像读取,然后调用imwrite函数对图像进行保存,并指定图像的保存格式。

如将BMP格式转换为PNG格式,

bitmap=imread(‘mybitmap,bmp’,’bmp’)

imwrite(bitmap,‘mybitmap,png’,’png’)

三、实验要求

1、掌握实验的原理,熟悉所给的几个简单函数的使用。

2、用MATLAB在自建的文件夹中建立example1.m文件,在这个文件的程序中,将MATLAB目录下的pout.tif图像文件读出,用到imread,imfinfo等文件,观察一下图像数据,了解一下数字图像在MATLAB中的处理就是处理一个矩阵。

将这个图像显示出来(用imshow),尝试修改map颜色矩阵的值,再将图像显示出来,观察图像颜色的变化。

(用figure函数再打开一个图像对话框)。

打开PIC文件夹下的文件,观察图像数据的特点,体会彩色图像、索引图像、灰度图像各自数据的特点。

3、选择一幅图像进行图像类型和格式之间的转换。

4、用MATLAB在自建的文件夹中建立example2.m文件,在这个文件的程序中,将pic目录下文件夹中的rice.png图像文件读出,显示它的图像及灰度直方图,根据你对直方图的理解,编程实现直方图的显示。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2