资源描述:
《MATLAB图像处理工具箱支持四种基本图像类型.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、MATLAB图像处理工具箱支持四种基本图像类型:索引图像、灰度图像、二进制图像和RGB图像。MATLAB直接从图像文件中读取的图像为RGB图像。它存储在三维数组中。这个三维数组有三个面,依次对应于红(Red)、绿(Green)、蓝(Blue)三种颜色,而面中的数据则分别是这三种颜色的强度值,面中的元素对应于图像中的像素点.设所得矩阵为X三维矩阵(256,256,3) ,X(:,:,1)代表红颜色的2维矩阵X(:,:,2)代表绿颜色的2维矩阵,X(:,:,3)代表兰颜色的2维矩阵.[X,map]=imread(’34。bmp
2、’);r=double(X(:,:,1));%r是256x256的红色信息矩阵g=double(X(:,:,2));%g是256x256的绿色信息矩阵b=double(X(:,:,3));%b是256 x256的兰色信息矩阵索引图像数据包括图像矩阵X与颜色图数组map,其中颜色图map是按图像中颜色值进行排序后的数组。对于每个像素,图像矩阵X包含一个值,这个值就是颜色图数组map中的索引.颜色图map为m×3双精度矩阵,各行分别指定红、绿、蓝(R、G、B)单色值,map=[RGB],R、G、B为值域为[0,1]的实数值,m
3、为索引图像包含的像素个数。ﻫ对于相同的数据,采用uint8格式比双精度格式节省内存空间,从而更经济。在MATLAB中ﻫ如果索引图像的颜色图小于256行,则它的图像矩阵以uint8格式存储,否则以双精度格式存储。ﻫ一:imread:从图像文件夹中读取图像。ﻫA=imread(FILENAME,FMT)读取图像到A,如果文件是包含一灰度图像,A是一二维矩阵,如果文件是包含一真彩色图像(RGB),A是一三维矩阵(M—by—N-by—3)。FILENAME:图像文件名;FMT:图像文件格式;文件必须在当前目录下,或在Matlab的
4、一路径上.如果 imread不能够找到一名称为FILENAME的文件,那么它将找一名为FILENAME。FMT的文件ﻫ[X,MAP]=imread(FILENAME,FMT)把图像FILENAME读入与它相关的图像色彩信息写入MAP,图像色彩信息值在范围[0,1]中自动地重新调整.ﻫ[...]=imread(FILENAME)这种方式是试图得到文件的格式从文件所包含的信息。ﻫ [...]=imread(URL,.。.)从一InternetURL上读图像 URL 必须包含协议(即: "http://").1.2数据类型:
5、ﻫ TIFF的特殊语法: [.。.]=imread(..。,IDX)从很多图像TIFF文件中读一个图像;IDX是一个整数值,它显示了所读图像在文件中的顺序,例如:如果IDX是3,imread将读文件中的第三个图像.如果省略了这个变量, imread将读文件中的第一个图像.ﻫ IMREAD支持的图像文件格式:JPEGTIFFGIF BMPPNG HDF PCX XWD ICOCUR RAS PBM PGM PPMﻫ相关信息也可在Matlab中查看:imfinfo,imwrite,imformats, fread,ﻫ
6、二:imwrite输出图像ﻫimwrite(A,FILENAME,FMT) 把图像A写入图像文件FILENAME.ﻫimwrite(X,MAP,FILENAME,FMT)把X和它的相关色彩信息MAP写入FILENAME。ﻫimwrite(.。。,FILENAME) 把图像写入图像文件FILENAME,并推测可能的格式用来做filename的扩展名.扩展名必须是FMT中一合法名.ﻫimwrite(.。.,PARAM1,VAL1,PARAM2,VAL2,.。。) 不同的参数控制输出文件的各种不同特征。参数要是当前所支持的HDF
7、,JPEG,TIFF,PNG,PBM, PGM,和PPM文件ﻫ三:image 显示图像.image(C)把矩阵C转成一图像。C可以是一MxN或 MxNx3维的矩阵,且可以是包含double,uint8,或uint16 数据.image是用来显示附标图像,即显示的图像上有x,y坐标轴的显示,可以看到图像的像素大小。但可以加上axisoff命令即可把坐标去掉。imshow只是显示图像。用colormap来定义图像显示用的颜色查找表,比如用colormap(pink),可以把黑白图像显示成带粉红色的图像。图像像素矩阵的数据类型:
8、(1)显示真彩色图像像素三维矩阵X,如果是uint8类型,要求矩阵的数据范围为0-255,(2)如果是double型,则其数据范围为0—1,要不就会出错或者出现空白页。类型转换:(1)如果你原来的数值是uint8,在运算中转换为double后,实际要显示的数值没有改变的话,只要用uint8(X)就可转换