当前位置:文档之家› MATLAB仿真软件进行图像的输入、输出和格式变换

MATLAB仿真软件进行图像的输入、输出和格式变换

目录摘要 (I)Abstract (II)1 图像文件格式及图像类型 (1)1.1 MATLAB支持的几种图像文件格式: (1)1.2 matlab几种图像类型 (2)2 图像的输入 (4)3.图像的输入 (6)3.1以图像形式输出(图像的显示) (6)3.1.1索引图像的显示 (6)3.1.2灰度图像的显示 (7)3.1.3二值图像的显示 (8)3.1.4 RGB图像的显示 (8)3.2以图像文件的形式输出 (9)4 图像的保存 (11)5 图像类型转换 (13)5.1 RGB转换成灰度图像 (13)5.2 灰度图像转换为索引图像 (13)5.3 灰度图像转化为二值图像 (14)5.4 RGB图像转化为索引图像 (15)6 课设总结 (16)参考文献 (17)附录 (18)附录1:图像显示代码 (18)附录2:图像转换代码 (19)MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。

MATLAB 本身就是功能强大的数据可视化工具,可以通过各种形式显示分析数据,例如灰度直方图、等高线、蒙太奇混合、像素分析、图层变换以及材质贴图等。

利用可视化的图形,不仅能够评估图形图像的特性,还能够分析图像中的色彩分布等情况。

本次课程设计介就是Matlab环境下的一些最基本的图像处理操作,如读取、保存和显示不同格式的图像,并进行图像格式的相互变换如索引图像、灰度图像、RGB图像和二值图像的相互转换。

关键词:MATLAB ;图像处理;图像转换The MathWorks Inc. MATLAB is a U.S. commercial mathematics software for algorithm development, data visualization, data analysis and numerical calculation senior technical computing language and interactive environment, including MATLAB and Simulink two parts. As a powerful scientific computing platforms, it can almost satisfy all the calculations that needs. MATLAB itself is a powerful tool of data visualization that can display data through various forms, such as graylevel histogram, contours, montage mixing, pixel analysis, the layer texture and transformation. With visual graphics, it can not only evaluate image characteristics, but also analyze the distribution of color image.The curriculum is designed to refer some basic image processing operations Matlab environment, such as read, save and display images of different formats and image formats such as index mutual transform images, grayscale images, RGB image and binary image conversion.Keyword: MATLAB;image operation;image exchange1 图像文件格式及图像类型1.1 MATLAB支持的几种图像文件格式:⑴JPEG(Joint Photogyaphic Expeyts Group):一种称为联合图像专家组的图像压缩格式。

⑵BMP(Windows Bitmap):有1位、4位、8位、24位非压缩图像,8位RLE (Run length Encoded)的图像。

文件内容包括文件头(一个BITMAP FILEHEADER数据结构)、位图信息数据块(位图信息头BITMAP INFOHEADER 和一个颜色表)和图像数据。

⑶PCX(Windows Paintbrush):可处理1位、4位、8位、16位、24位等图像数据。

文件内容包括文件头、图像数据和扩展色图数据。

⑷TIFF(Tagged Iamge File Format):处理1位、4位、8位、24位非压缩图像,1位、4位、8位、24位packbit压缩图像,1位CCITT压缩图像等。

文件内容包括文件头、参数指针表与参数域、参数数据表和图像数据四部分。

⑸PNG(Portable Network Graphics):包括1位、2位、4位、8位和16位灰度图像,8位和16位索引图像,24位和48位真彩色图像。

⑹GIF(Graphics Interchange Format):任何1位到8位的可交换的图像。

⑺HDF(Hierarchial Data Format):有8位、24位光栅图像数据集。

⑻ICO(Windows Icon resource):有1位、4位、8位非压缩图像。

⑼CUR(Windows Cursor resource):有1位、4位、8位非压缩图像。

⑽XWD(X Windows Dump):包括1位、8位Zpixmaps,XYBitmaps,XYPixmmmaps。

⑾RAS(Sun Raster image):有1位bitmap、8位索引、24位真彩色和带有透明度的32位真彩色。

⑿PBM(Portable Bitmap)。

⒀PGM(Portable Graymap)。

⒁PPM(Portable Pixmap)。

1.2 matlab几种图像类型MATLAB支持五种图像类型,即二值图像、索引图像、灰度图像、RGB图像和多帧图像阵列。

(1)索引图像:它的数据信息包括一个数据矩阵和一个双精度色图矩阵,它的数据矩阵中的值直接指定该点的颜色为色图矩阵中的某一种。

色图矩阵中,每一行表示一种颜色,每行有三个数据,分别表示该种颜色中红、绿、蓝的比例情况,所有元素值都在[0,1]内。

(2)灰度图像:数据矩阵中的元素值一般都在[0,1]或[0,255]之间,灰度图像根据这些数据利用线性插值来和色图中的颜色种类匹配。

灰度图像一般看起来是一副黑白图像,但是色彩明暗度较二值图像更为丰富。

因为每一个像素点的取值在[0,1]或[0,255]之间。

灰度图像读入matlab中是一个二维的平面矩阵,其中行与列的乘积代表其图片中像素点的个数。

(3)二值图像:数据矩阵中的元素值只是0或1。

读入matlab也是一个二维矩阵。

二值图像读入matlab中也是一个二维的平面矩阵,但像素点取值只限于0,1。

(4)RGB图像:图像中每个象素的颜色用三个数据来存储,分别指定红、绿、蓝三原色在象素颜色中的比例关系,组成一个三维数组,读入matlab后是一个三维的矩阵。

RGB图像就是采用红、绿、蓝作为三原色的,其中R为红色,G 为绿色,B为蓝色。

这样这个三维矩阵A就可以表示成一个彩色矩阵,也就是一张数字图像可以在matlab中读成一个矩阵A。

这个三维矩阵的第一维就是上图中第一层代表红色数值,第二维为第二层代表绿色数值,第三维为第三层代表蓝色数值。

也可以这样理解:将索引图像中的数据矩阵中每一个像素点直接加载上色图矩阵中对应的颜色值。

图1.2 MATLAB集中图像类型2 图像的输入MATLAB提供了一个重要的用于图像文件的读写的指令------从图像文件中读取数据的imread,imread的常见调用格式为:A=imread(‘filename’,’fmt’)其作用是将文件名用字符串filename表示的,扩展名用fmt表示的图像文件中的数据读到矩阵A中。

如果filename所指的为灰度级图像,则A为一个二维矩阵;如果filename所指的为RGB图像,则A为一个m×n×3的三维矩阵。

Filename 表示的文件名必须在MATLAB的搜索路径范围内,否则需指出其完整路径。

imread的其他几种重要的调用格式为:[X,map]=imread(‘filename’,’fmt’)[…]=imread(‘filename’)[…] = imread(URL,…)[…] = imread(…,idx)(CUR,ICO and TIFF only)[…] = imread(…,’frames’,idx)(GIF only)[…] = imread(…,ref)(HDF only)[…] = imread(…,’BackgroundColor’,BG)(PNG only)[A,map,alpha] = imread(…)(ICO,CUR and PNG only)上面一些参数的含义如下:idx是指读取图标(cur、ico、tiff)文件中第idx个图像,默认值为1。

’frame’,idx是指读取gif文件中的图像帧,idx值可以是数量、向量或’all’。

ref是指整数值。

alpha是指透明度。

程序如下:I=imread('天呀.jpg');或者是I=imread('C:\\MATLAB\work\天呀.jpg','jpg');图2.1 图像的输入3.图像的输入3.1以图像形式输出(图像的显示)以图像形式输出,其实质就是图像的显示。

函数为image(imshow).根据不同的图像形式,有一些不同的显示方法.图3.1 图像输出的框图3.1.1索引图像的显示索引图像包含一个数据矩阵A,一个颜色映射矩阵map。

像素颜色内数据矩阵X 作为索引值向矩阵map进行索引。

可以用下面代码来显示一幅索引图像:image(A)colormap(map).程序:I=imread('C:\\MATLAB\work\suoyin.jpg','jpg'); image(I);colormap(map);图3.1.1.1 索引图像显示程序及图像3.1.2灰度图像的显示一幅灰度图像是一个数据矩阵I1.imshow(I,[low,high])以灰度范围[low,high]显示图像,如果不知道灰度范围,可以用imshow(I,[])显示。

相关主题