您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > MATLAB数字图像处理介绍
图像:(1)模拟图像:光学图像、模拟电视图像等。处理速度快,但精度和灵活度差。(2)数字图像:数码相机、数字电视等。是将连续的模拟图像经过离散化处理后得到的计算机可以识别及处理的点阵图像。数字图像像素数字图像的优点:(1)精度高:目前计算机可将模拟图像转化成高精度数字图像(2)处理方便:数字图像是一组数据,可利用计算机对其处理(3)重复性好:数字图像可比模拟图像有正常的保质时间图像的不同类型及在matlab中的显示1.数字图像(按纪录方式分):(1)矢量图像:利用数学的矢量方式纪录图像内容。以线条和色块为主,容易放大、缩小或旋转,且不易失真,精确度高,可以绘制3D图像。但是不易做成色彩丰富的图像。(2)位图图像:将图像中每一个像素点转换成一个数据。如果以8位记录,可以表现出256种颜色(),所以色彩丰富。通常有:16色,256色,增强16位和真彩色24位().但随着颜色数和分辨率的提高,存储空间大,且较易失真。用数码相机和扫描仪获得的图像都属于位图。822568882223)象素:是图像在计算机显示中的度量单位,可以变化,可大可小。4)分辨率:是用于度量图像在显示器中清晰程度的一个参数,分辨率越高,图像越清晰。分辨率是与象素相关的,即单位长度上的象素数就是分辨率。由此可知,分辨率越高,象素的几何尺寸就越小。5)图像文件的大小:指一幅图像在计算机中保存时所占用的磁盘空间,其大小与所用的颜色模式有关。灰度图像中的每一个灰度象素只占用一个字节(8位),RGB图像中红、绿、蓝各占用一个字节。另外,图像文件的大小也直接与其分辨率有关,原因是当分辨率增加时,一幅图像所包含的象素量急剧增加。6)句柄:就是对象的代号或标志,它能使计算机方便地找到所需要的对象并加以相应的操作。MATLAB中的句柄图形对象包括轴、文本、菜单、控制框、图像等。2.几种常见的MATLAB图像文件格式简介:A)BMP格式。即位图文件,整幅图可视为一个数字矩阵。它包括1、4、8、24位非压缩图像,8位RLE(行程编码)图像。文件内容包含文件头、位图信息数据块和图像数据。选择BMP格式保存一幅灰度模式图像时,可选择以Windows格式保存。而且在选中4位或8位位图时,还可选压缩(RLE)项,在用RLE方式压缩保存后图像将毫无损失。这是用得最广的图像格式之一。B)TIFF格式。处理1、4、8、24位非压缩图像,1、4、8、24位packbit压缩图像,1位CCITT压缩图像等。文件内容包括:文件头、参数指针表与参数域、参数数据表和图像数据四部分。是一种用途广泛的文件格式,其特点是可移植性好,几乎所有的扫描仪及在Windows、Macintosh平台上常用的版面设计软件都支持TIFF文件格式。但图像文件结构比较复杂,不压缩时文件比较大。C)JPEG格式。是一种联合图像专家组的图像压缩格式,是目前所用对静止灰度或彩色图像的压缩标准。它实际上定义了3种编码系统:a.基于DCT有损编码基本系统,用于绝大多数压缩场合;b.用于高压缩比、高精度或渐进重建应用的扩展编码系统;c.用于无失真应用场合的无损系统。JPEG没有规定文件格式、图像分辨率或所用的彩色空间模型,这使它适用于MATLAB。D)PCX格式。可处理1、4、8、16、24位等图像数据。文件内容包括文件头、图像数据、扩展调色板数据。E)XWD格式。1、8位Zpixmaps,Xybitmaps,1位XYPixmaps。F)TGA格式。处理1、4、8、16、24位非压缩图像和行程编码图像。文件包由5个固定长度字段和3个可变长度字段组成。G)HDF格式。有8位,24位光栅图像数据集。3.MATLAB图像文件类型:根据数据矩阵和图像象素颜色匹配关系,MATLAB中图像可分为:索引图像、灰度图像、二值图像和RGB图像。1)索引图像:它的数据信息包括一个数据矩阵和一个双精度色图矩阵,它的数据矩阵中的值直接指定该点的颜色为色图矩阵中的某一种。色图矩阵中,每一行表示一种颜色,每行有三个数据,分别表示该种颜色中红、绿、蓝的比例情况,所有元素值都在[0,1]内。数据矩阵(图片)像素点对应双精度色图矩阵(色彩)………………2)灰度图像:数据矩阵中的元素值一般都在[0,1]或[0,255]之间,灰度图像根据这些数据利用线性插值来和色图中的颜色种类匹配。灰度图像读入matlab中是一个二维的平面矩阵,其中行与列的乘积代表其图片中像素点的个数。•注意:灰度图像一般看起来是一副黑白图像,但是色彩明暗度较二值图像更为丰富。因为每一个像素点的取值在[0,1]或[0,255]之间。……………………............像素点取值:[0,1]或[0,255]mnm*n个像素,如1024*7683)二值图像:数据矩阵中的元素值只是0或1。读入matlab也是一个二维矩阵。注意:二值图像读入matlab中也是一个二维的平面矩阵,但像素点取值只限于0,1。4)RGB图像:图像中每个象素的颜色用三个数据来存储,分别指定红、绿、蓝三原色在象素颜色中的比例关系,组成一个三维数组,读入matlab后是一个三维的矩阵。注意:美术教科书中称红、黄、蓝为三原色,讲的是绘画颜料的使用。一般电视光色等光色是红、绿、蓝。RGB图像就是采用红、绿、蓝作为三原色的,其中R为红色,G为绿色,B为蓝色。上图是一个2048*1536大小的图像,其中这个三维矩阵的第一维就是上图中第一层代表红色数值,第二维为第二层代表绿色数值,第三维为第三层代表蓝色数值。也可以这样理解:将索引图像中的数据矩阵中每一个像素点直接加载上色图矩阵中对应的颜色值。xoyz321153620481x1yrbg图像在图像(x1,y1)点的RGB值是(r,g,b)MATLAB图像处理工具箱Matlab是一种基于向量(数组)而不是标量的高级程序语言,因而Matlab从本质上就提供了对图像的支持。数字图像实际上是一组有序离散的数据,使用Matlab可以对这些离散数据形成的矩阵进行一次性的处理。Matlab对图像的处理功能主要集中在它的图像处理工具箱(ImageProcessingToolbox)中。图像处理工具箱是由一系列支持图像处理操作的函数组成,可以进行诸如几何操作、线性滤波和滤波器设计、图像变换、图像分析与图像增强、数学形态学处理等图像处理操作。图像处理工具箱主要有:*ImageAcquisitionToolbox(图像采集工具箱)*ImageProcessingToolbox(图像处理工具箱)*SignalProcessingToolbox(信号处理工具箱)*WaveletToolbox(小波分析工具箱)*StatisticsToolbox(统计工具箱)*BioinformaticsToolbox(生物信息学工具箱)1Matlab中的图像类型及类型转换Matlab中的数字图像是由一个或多个矩阵表示的,Matlab强大的矩阵运算功能完全可以应用于图像,那些适用于矩阵运算的语法对Matlab中的数字图像同样适用。1.1图像和图像数据缺省:double(64位浮点数)uint8(无符号8位整型)1.2图像处理工具箱所支持的图像类型图像处理工具箱支持4真彩色图像(RGBimages索引色图像(indeximages灰度图像(intensityimages二值图像(binaryimages)Matlab还支持由多帧图像组成的图像序列真彩色图像真彩色图像用R、G、B3个分量表示1个像素的颜色,数据结构是一个m×n×3的多维数组。如果要读取图像中(100,50)处像素值,可以查看三元组(100,50,1:3)。真彩色图像可用双精度存储,亮度值范围是[0,1]常用存储方法是无符号整型存储,亮度值范围为[0,255]真彩色图像数据格式双精度类:Double(每个像素占8个字节)整数类:Uint8(每个像素占1个字节)数组大小:m×n×3(:,:,1)-红色分量(:,:,2)-绿色分量(:,:,3)-蓝色分量像素取值:[0,1]数组大小:m×n×3(:,:,1)-红色分量(:,:,2)-绿色分量(:,:,3)-蓝色分量像素取值:[0,255]图1真彩色图像的结构索引图像是把像素值作为RGB调色板下标的图像。索引色图像包含2个结构,一个是调色板map;另一个是图像数据矩阵X。调色板是一个有3列和若干行的色彩映像矩阵,矩阵每行都代表一种色彩,通过3个分别代表红、绿、蓝颜色强度的双精度数,形成一种特定颜色。图像数据是uint8或是双精度的。Matlab中调色板的色彩强度是[0,1]中的浮点数,0代表最暗,1代表最亮。图2索引色图像的结构索引图像的数据格式双精度类:Double(每个元素占8个字节)整数类:Uint8(每个元素占1个字节)图像数组大小:m×n图像元素取值:[1,p]调色板矩阵:p×3图像数组大小:m×n图像元素取值:[0,p-1]调色板矩阵:p×3索引图像的double与uint8型123401230000.06270.062700010.29020.6270.6270.38200.35781doubleuint8图像数据调色板灰度图像存储灰度图像只需要一个数据矩阵,数据类型可以是double也可以是uint8。存储时会使用一个默认的调色板来显示图像。二值图像与灰度图像相同,二值图像只需一个数据矩阵,每个像素只有2个灰度值。可以采用uint8或double类型存储,工具箱中以二值图像作为返回结果的函数都使用uint8类型。图像序列图像处理工具箱支持将多帧图像连接成图像序列。可以使用cat函数将分散图像合并成图像序列,前提是各图像尺寸必须相同,如果是索引色图像,调色板必须是一样的。将A1、A2、A3、A4、A5五幅图像合并成一个图像序列A,Matlab语句为A=cat(1,A1,A2,A3,A4,A5),1维,纵向排列A=cat(2,A1,A2,A3,A4,A5),2维,横向排列A=cat(3,A1,A2,A3,A4,A5),3维,竖向排列图像序列也可以产生一个四维的数组,图像帧的序号在图像的长、宽、颜色深度之后构成第四维。一个包含了5幅400×300真彩色图像的序列,大小为400×300×3×5一个包含了5幅400×300灰度或是索引图像的序列,其大小为400×300×1×5A=cat(4,A1,A2,A3,A4,A5),4维提取其中一帧(如第2帧):A(:,:,:,2)1.3图像文件的读写和查询imread:读取图形文件格式的图像;imwrite:写入图形文件格式的图像;imfinfo:获取图像的信息;load\save:以Mat文件加载或保存矩阵数据;imshow:显示加载到Matlab函数imread可完成图形图像文件的读取操作,其语法如下,一般:A=imread(filename,fmt)索引图像:[X,map]=imread(filename,fmt)[X,map]=imread(‘m83.tif’,‘tif’)图形图像文件的读取存储图像数据的矩阵名图像调色板图像文件名文件格式一个例子:图像Imread读入Matlab中的矩阵A(一个三维矩阵)Matlab窗口Imread命令读入的A是一个三维的数据为uint8位的矩阵命令窗口imread函数可以从任何Matlab支持的图形文件中以特定的位宽读取图像。读取的大多数图像均为8bit。加载到内存中时,就存储在类uint8对于索引图像来说,即使图像阵列的本身为uint8或uint16,imread函数仍然将颜色映像表读取并存储到一个双精度的浮点类型阵列中。对A(1536*2048*3,uint8)的解释如下图:通过左图的表示,这样这个三维矩阵A就可以表示成一个彩色矩阵,也就是一张数字图像可以在matlab中读成一个矩阵A值得注意的是数据类型,上面记录的数据是uint8型,关于数据类型,有如下内容:xoyz321153620481x1yrbg在图像(x1,y1)点的RGB值是(r,g,b)且数据为
本文标题:MATLAB数字图像处理介绍
链接地址:https://www.777doc.com/doc-6203440 .html