图像处理常用命令matlab

上传人:xh****66 文档编号:56546134 上传时间:2018-10-13 格式:DOC 页数:31 大小:186.50KB
返回 下载 相关 举报
图像处理常用命令matlab_第1页
第1页 / 共31页
图像处理常用命令matlab_第2页
第2页 / 共31页
图像处理常用命令matlab_第3页
第3页 / 共31页
图像处理常用命令matlab_第4页
第4页 / 共31页
图像处理常用命令matlab_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《图像处理常用命令matlab》由会员分享,可在线阅读,更多相关《图像处理常用命令matlab(31页珍藏版)》请在金锄头文库上搜索。

1、1. 读入并显示一幅图像读入并显示一幅图像 clear %清除所有的工作平台变量 close all %关闭已打开的图形窗口 I=imread (pout.tif); %读取图像 pout.tif(该图像是图像处理工具箱自带的图像), %存储在一个名为 I 的数组中 imshow(I) %显示图像 I2. 检查内存中的图像检查内存中的图像whos %查看图像数据 I 是如何存储在内存中的。3. 实现直方图均衡化实现直方图均衡化figure %生成一个新的图形窗口,避免后面的图像覆盖前面图像的显示 imhist(I) %创建描述图像 I 灰度分布的直方图 I2=histeq(I); %将图像的灰

2、度值扩展到整个灰度范围,从而提高图像数组 I 的对比度。figure,imshow(I2) %显示修改过的图像 I2 figure,imhist(I2) %显示拓展后的灰度值的分布情况4. 保存图像保存图像imwrite(I2,pout.png); %将图像 I2 以 PNG 图像文件格式保存到磁盘5. 检查新生成文件的内容检查新生成文件的内容imfinfo(pout2.png) %观察保存的图像文件信息图像处理的高级应用图像处理的高级应用 主要对一幅灰度图像 rice.tif 进行一些较为高级的操作为例说明整个过程。 1. 读取和显示图像读取和显示图像clear %清除所有的工作平台变量 c

3、lose all %关闭已打开的图形窗口 I=imread(rice.png); %读取图像 rice.png (该图像是图像处理工具箱自带的图像) imshow(I) %显示图像2. 估计图像背景估计图像背景background=imopen(I,strel(disk,15); %对图像 I 进行形态学开操作,删除那些不完全包 括 %在半径为 15 的圆盘中的对象,实现对背景亮度的估计figure,imshow(background)figure,surf(double(background(1:8:end,1:8:end),zlim(0 255); %以表面形式显示背景3. 从原始图像中减

4、去背景图像从原始图像中减去背景图像I2=imsubtract(I,background); %将背景图像 background 从原始图像 I 中减去 figure,imshow(I2)4. 调节图像对比度调节图像对比度I3=imadjust(I2,stretchlim(I2),0 1); %调节图像的对比度figure,imshow(I3);5. 使用阈值操作将图像转换为二进制图像使用阈值操作将图像转换为二进制图像level=graythresh(I3); bw=im2bw(I3,level); figure,imshow(bw)6. 检查图像中的对象个数检查图像中的对象个数labeled,

5、numObjects=bwlabel(bw,4); %确定图像中的米粒个数 numObjects1017. 检查标记矩阵检查标记矩阵grain=imcrop(labeled) %选择并显示已标记的对象和部分背景内的像素RGB_label=label2rgb(labeled,spring,C,shuffle); %将标记矩阵标记矩阵显示为一副伪彩色的索引图像索引图像,在伪彩色的彩色图像中, %标记矩阵中的每一个对象每一个对象都将被映射为相关调色板中的不同颜色相关调色板中的不同颜色 imshow(RGB_label);8.计算图像中对象的统计属性计算图像中对象的统计属性graindata=regi

6、onprops(labeled,basic) %测量图像测量图像或者区域的属性区域的属性,并返回一个结构数组。当用于一个标记图像时,%它 还为每一个标记分量创建一个结构元素。graindata(51).Area %显示第 51 个元素的属性graindata(51).BoundingBox,graindata(51).Centroid %寻找最近的边缘和中心allgrains=graindata.Area; %创建一个新的向量 allgrains,其包含每个米粒的范围allgrains(51) %查看第 51 个元素的范围max(allgrains) %获取最大的米粒大小biggrain=fi

7、nd(allgrains=404) %返回最大米粒的标记号mean(allgrains) %获取米粒的平均大小hist(allgrains,20) %绘制包含 20 个柱的直方图图像格式:是存储图像采用的文件格式图像格式:是存储图像采用的文件格式。不同的操作系统、不同的图像处理软件,所支持的 图像格式都有可能不同。 在实际应用中经常会遇到的图像格式经常会遇到的图像格式有:BMP、GIF、TIFF、PCX、JPEG、PSD、PCD、 WMF 等。 *(1) BMP(Bitmap)文件文件 *(2)GIF 文件文件 *(3)TIF 文件文件*(4)JPEG 文件文件图像类型:图像类型:是指数组数值

8、与像素颜色之间定义的关系数组数值与像素颜色之间定义的关系,它与图像格式概念有所不同。 在 MATLAB 图像处理工具箱中,有五种类型的图像五种类型的图像: (1) 二进制图像二进制图像 在一幅二进制图像中,每一个像素每一个像素将取两个离散数值取两个离散数值(0 或或 1)中的一个,中的一个,从本质上说, 这两个数值这两个数值分别代表状态代表状态“开开”(on)或“关关”(off)。 二进制图像仅使用使用 unit8 或双精度类型双精度类型的数组来存储存储。 在图像处理工具箱中,任何返回一幅二进制图像的数组均使用使用 unit8 逻辑数组存储逻辑数组存储该图 像,并且使用一个逻辑标志来指示逻辑标

9、志来指示 unit8 逻辑数组的数据范围数据范围。 若逻辑状态为若逻辑状态为“开开” (on) ,数组范围为0,1;若为若为“关关” (off) ,则数组范围为0,255。(2) 索引图像索引图像 索引图像索引图像:是一种把像素值像素值直接作为 RGB 调色板下标调色板下标的图像。 在 MATLAB 中,索引图像索引图像包含有一个数据矩阵一个数据矩阵 X 和一个颜色映射(调色板)矩阵一个颜色映射(调色板)矩阵 map。数据矩阵:数据矩阵:可以是 unit8、unit16、双精度类型的; 颜色映射矩阵颜色映射矩阵 map:是一个 m3 的数据矩阵,其中每个元素的值均为0,1之间的双精度浮 点型数

10、据,map 矩阵的每一行每一行分别表示红色、绿色和蓝色的颜色值红色、绿色和蓝色的颜色值。 索引图像可把像素值像素值直接映射为调色板数值调色板数值,每一个像素的颜色每一个像素的颜色通过使用使用 X 的数值的数值作 为 map 的下标的下标来获得,如值值 1 指向矩阵 map 中的第一行中的第一行,值值 2 指向第二行第二行,依此类推。 颜色映射颜色映射通常与索引图像存储在一起索引图像存储在一起,当装载图像时,MATLAB 自动将颜色映射表与 图像同时装载。 图像矩阵图像矩阵与颜色映射表颜色映射表之间的关系依赖于图像数据矩阵的类型关系依赖于图像数据矩阵的类型。 如果图像数据矩阵是双精度类型双精度类

11、型,则数据数据 1 指向矩阵 map 中的第第一一行行,数据值数据值 2 将指 向 map 中的第二行第二行,依此类推; 如果图像矩阵是 unit8 或或 unit16 类型类型时,将产生一个偏移,即数值数值 0 表示矩阵 map 中 的第第一一行行,数据值数据值 1 将指向 map 中的第二行第二行,依此类推。(3) 灰度图像灰度图像 灰度图像通常由一个 unit8、unit16、双精度类型的数组来描述,其实质是一个数据矩阵数据矩阵 I,该矩阵中的数据矩阵中的数据均代表了在一定范围内的灰度级灰度级,每一个元素每一个元素对应于图像的一个像素点一个像素点, 通常 0 代表黑色代表黑色,1、255

12、、65 535(针对不同存储类型)代表白色(针对不同存储类型)代表白色。(4) 多帧图像多帧图像 多帧图像多帧图像是一种包含多幅图像或帧的图像文件,又称为多页图像多页图像或图像序列图像序列。 在 MATLAB 中,它是一个四维数组四维数组,其中第四维第四维用来指定帧的序号帧的序号。 在一个多帧图像数组中,每一幅图像每一幅图像必须有相同的大小和颜色分量相同的大小和颜色分量,每一幅图像还要使 用相同的调色板相同的调色板。另外,图像处理工具箱中的许多函数(如:imshow)只能对多幅图像矩 阵的前两维或三维进行操作,也可以对四维数组使用这些函数,但是必须单独处理每一帧必须单独处理每一帧。 如果将一个

13、数组传递给一个函数,并且数组的维数超过该函数设计的超作维数,那么得到的 结果是不可预知的。(5) RGB 图像图像 RGB 图像图像又称为真彩色图像真彩色图像,它是利用 R、G、B 三个分量表示一个像素的颜色像素的颜色, R、G、B 分别代表红、绿、篮红、绿、篮 3 种不同的颜色种不同的颜色,通过三基色可以合成出任意颜色。所以对一个尺寸为尺寸为 nm 的彩色图像来说,在 MATLAB 中则存储为一个 nm3 的多维数据数组多维数据数组, 其中数组中的元素定义了图像中的每一个像素的红、绿、篮颜色值。图形文件格式图形文件格式把 RGB 图像存储为 24 位位的图像,红、绿、篮分量分别占用红、绿、篮

14、分量分别占用 8 位位。 MATLAB 的 RGB 数组数组可以是双精度的浮点型、8 位或 16 位无符号的整数类型。在一 个双精度类型双精度类型的 RGB 数组中,每一个颜色分量都是一个0,1范围内的数值。如:颜色分量 为(0,0,0)的像素将显示为黑色黑色;颜色分量为(1,1,1)的像素将显示为白色白色。每一个像素的三个三个 颜色分量颜色分量都存储在数组的第三维中第三维中。如:像素(像素(10,5)的红、绿、篮颜色值)的红、绿、篮颜色值分别保存在元 素 RGB(10,5,1)、RGB(10,5,2)、RGB(10,5,3)中。例:例:创建一个简单的 RGB 图像,该图像包含某一范围内不中断

15、的红、绿、篮颜色分量,另 外, 针对每一个颜色分量各创建一幅图像来加以对比: RGB=reshape(ones(64,1)*reshape(jet(64),1,192),64,64,3); R=RGB(:,:,1); G=RGB(:,:,2); B=RGB(:,:,3); subplot(2,2,1);imshow(R); subplot(2,2,2);imshow(G); subplot(2,2,3);imshow(B); subplot(2,2,4);imshow(RGB);(1)图像颜色浓淡处理(图像抖动)图像颜色浓淡处理(图像抖动) X=dither(RGB,map) %通过抖动算法将真彩色图像真彩色图像 RGB 按指定的颜色(调色板)map 转 换 成索引色图像索引色图像 X X=dither(RGB,map,Qm,Qe) %利用给定的参数 Qm,Qe 从真彩色图像真彩色图像 RGB 中产生索引色图像索引色图像 X。 %Qm 表示沿每个颜色轴反转颜色图的量化(即对于补色各颜色轴)的位数,%Qe 表示颜色空间计算误差的量化误差。%如果 Qe 1,越亮 输出值越减弱;缺省 gamma=1,表示线性变换。newmap=imadjust(map,low high,bottom top,gamma) 对索引图像的颜色图进行变换对索引图像的颜色图进行变换。如果low

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号