图像处理常用命令matlab归纳 .pdf
《图像处理常用命令matlab归纳 .pdf》由会员分享,可在线阅读,更多相关《图像处理常用命令matlab归纳 .pdf(31页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1. 读入并显示一幅图像clear % 清除所有的工作平台变量close all %关闭已打开的图形窗口I=imread (pout.tif); %读取图像 pout.tif(该图像是图像处理工具箱自带的图像),%存储在一个名为I 的数组中imshow(I) %显示图像 I 2. 检查内存中的图像whos % 查看图像数据 I 是如何存储在内存中的。3. 实现直方图均衡化figure % 生成一个新的图形窗口,避免后面的图像覆盖前面图像的显示imhist(I) % 创建描述图像 I 灰度分布的直方图I2=histeq(I); % 将图像的灰度值扩展到整个灰度范围,从而提高图像数组I 的对比度。
2、figure,imshow(I2) %显示修改过的图像I2 figure,imhist(I2) % 显示拓展后的灰度值的分布情况4. 保存图像imwrite(I2,pout.png); %将图像 I2 以 PNG 图像文件格式保存到磁盘5. 检查新生成文件的内容imfinfo(pout2.png) % 观察保存的图像文件信息图像处理的高级应用主要对一幅灰度图像rice.tif 进行一些较为高级的操作为例说明整个过程。1. 读取和显示图像clear % 清除所有的工作平台变量close all %关闭已打开的图形窗口I=imread(rice.png); %读取图像 rice.png (该图像是
3、图像处理工具箱自带的图像) 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. 从原始图像中减去背景图像I2=imsubtract(I,background); % 将背景图像 background从原始图像 I 中减去fig
4、ure,imshow(I2) 4. 调节图像对比度I3=imadjust(I2,stretchlim(I2),0 1); % 调节图像的对比度figure,imshow(I3); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 31 页 - - - - - - - - - 5. 使用阈值操作将图像转换为二进制图像level=graythresh(I3); bw=im2bw(I3,level); figure,imshow(bw) 6. 检查图像中的对象个数labeled,
5、numObjects=bwlabel(bw,4); % 确定图像中的米粒个数numObjects 101 7. 检查标记矩阵grain=imcrop(labeled) %选择并显示已标记的对象和部分背景内的像素RGB_label=label2rgb(labeled,spring,C,shuffle); %将标记矩阵 显示为一副伪彩色的 索引图像 ,在伪彩色的彩色图像中,%标记矩阵中的 每一个对象 都将被映射为 相关调色板中的不同颜色imshow(RGB_label); 8.计算图像中对象的统计属性graindata=regionprops(labeled,basic) %测量图像 或者区域的属
6、性 , 并返回一个结构数组。 当用于一个标记图像时, %它还为每一个标记分量创建一个结构元素。graindata(51).Area % 显示第 51个元素的属性graindata(51).BoundingBox,graindata(51).Centroid % 寻找最近的边缘和中心allgrains=graindata.Area; %创建一个新的向量allgrains,其包含每个米粒的范围allgrains(51) %查看第 51 个元素的范围max(allgrains) %获取最大的米粒大小biggrain=find(allgrains=404) % 返回最大米粒的标记号mean(allgr
7、ains) % 获取米粒的平均大小hist(allgrains,20) % 绘制包含 20 个柱的直方图图像格式:是存储图像采用的文件格式。不同的操作系统、不同的图像处理软件,所支持的图像格式都有可能不同。在实际应用中 经常会遇到的图像格式有:BMP、GIF 、TIFF 、PCX、JPEG、PSD、PCD、WMF 等。*(1) BMP(Bitmap) 文件*(2)GIF 文件*(3)TIF 文件*(4)JPEG 文件名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 31 页
8、 - - - - - - - - - 图像类型: 是指数组数值与像素颜色之间定义的关系,它与图像格式概念有所不同。在 MATLAB 图像处理工具箱中,有 五种类型的图像 :(1) 二进制图像在一幅二进制图像中, 每一个像素 将取两个离散数值 (0 或 1)中的一个, 从本质上说 ,这两个数值 分别代表状态“开” (on)或“关” (off)。二进制图像仅 使用 unit8 或双精度类型 的数组来 存储。在图像处理工具箱中,任何返回一幅二进制图像的数组均使用 unit8 逻辑数组存储 该图像,并且使用一个 逻辑标志来指示unit8 逻辑数组的 数据范围 。若逻辑状态为“开”(on) ,数组范围为
9、 0,1;若为“关” (off) ,则数组范围为 0,255。(2) 索引图像索引图像 :是一种把 像素值 直接作为 RGB 调色板下标 的图像。在 MATLAB 中,索引图像 包含有 一个数据矩阵 X 和一个颜色映射 (调色板) 矩阵 map。数据矩阵: 可以是 unit8、unit16、双精度类型的;颜色映射矩阵map:是一个 m3 的数据矩阵,其中每个元素的值均为0,1之间的双精度浮点型数据, map 矩阵的 每一行 分别表示 红色、绿色和蓝色的颜色值。索引图像可把 像素值 直接映射为 调色板数值 ,每一个像素的颜色 通过使用 X 的数值 作为map 的下标 来获得,如 值 1 指向矩阵
10、 map 中的第一行 ,值 2指向第二行 ,依此类推。颜色映射 通常与索引图像存储在一起 ,当装载图像时, MATLAB 自动将颜色映射表与图像同时装载。图像矩阵 与颜色映射表 之间的 关系依赖于图像数据矩阵的类型。如果图像数据矩阵是 双精度类型 ,则数据 1 指向矩阵 map中的第一行,数据值 2 将指向map中的第二行 ,依此类推;如果图像矩阵是unit8 或 unit16 类型时,将产生一个偏移,即 数值 0表示矩阵 map中的第一行,数据值 1 将指向 map中的第二行 ,依此类推。(3) 灰度图像灰度图像通常由一个unit8、 unit16、 双精度类型的数组来描述, 其实质是一个
11、数据矩阵 I,该矩阵中的数据 均代表了在一定范围内的灰度级 ,每一个元素 对应于图像的 一个像素点 ,通常 0 代表黑色 ,1、255、65 535(针对不同存储类型)代表白色。(4) 多帧图像多帧图像 是一种包含多幅图像或帧的图像文件,又称为多页图像 或图像序列 。在 MATLAB 中,它是一个 四维数组 ,其中 第四维 用来指定 帧的序号 。在一个多帧图像数组中,每一幅图像 必须有 相同的大小和颜色分量 ,每一幅图像还要使用相同的调色板 。另外,图像处理工具箱中的许多函数(如:imshow)只能对多幅图像矩阵的前两维或三维进行操作,也可以对四维数组使用这些函数,但是必须单独处理每一帧 。如
12、果将一个数组传递给一个函数,并且数组的维数超过该函数设计的超作维数,那么得到的结果是不可预知的。(5) RGB 图像RGB 图像又称为 真彩色图像 ,它是利用 R、G、B 三个分量表示一个 像素的颜色 ,R、G、B 分别代表 红、绿、篮 3 种不同的颜色 ,通过三基色可以合成出任意颜色。所以对一个尺寸为 nm 的彩色图像来说,在MATLAB 中则存储为一个nm3 的多维数据数组 ,其中数组中的元素定义了图像中的每一个像素的红、绿、篮颜色值。 图形文件格式 把 RGB 图像存储名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精
13、心整理 - - - - - - - 第 3 页,共 31 页 - - - - - - - - - 为 24 位的图像, 红、绿、篮分量分别占用8 位。MATLAB 的 RGB 数组可以是双精度的浮点型、 8 位或 16 位无符号的整数类型。在一个双精度类型 的 RGB 数组中, 每一个颜色分量都是一个0,1范围内的数值。如: 颜色分量为 (0,0,0)的像素将显示为 黑色 ;颜色分量为 (1,1,1)的像素将显示为 白色 。每一个像素的 三个颜色分量都存储在数组的 第三维中 。 如: 像素 (10, 5) 的红、绿、 篮颜色值 分别保存在元素RGB(10,5,1)、RGB(10,5,2)、RG
14、B(10,5,3)中。例:创建一个简单的 RGB 图像,该图像包含某一范围内不中断的红、绿、篮颜色分量, 另外,针对每一个颜色分量各创建一幅图像来加以对比: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)图像颜色浓淡处理(图像抖
15、动)X=dither(RGB,map) % 通过抖动算法将 真彩色图像 RGB 按指定的颜色 (调色板)map 转换成索引色图像 XX=dither(RGB,map,Qm,Qe) %利用给定的参数Qm,Qe从真彩色图像 RGB 中产生 索引色图像 X。%Qm 表示沿每个颜色轴反转颜色图的量化(即对于补色各颜色轴)的位数,%Qe 表示颜色空间计算误差的量化误差。% 如果 QeQm,则不进行抖动操作。 Qm 的默认值是 5,Qe的默认值是 8。BW=dither(I) %通过抖动算法将 矩阵 I 中的灰度图像 转换为 二进制图像 。注意:输入图像 可以是双精度类型或8 位无符号类型,其他参数必须是
16、双精度类型。如果输出的图像是二值图像或颜色种类少于256 的索引图像时,为uint8 类型,否则为 doule型。例:由 RGB 图像产生一个 索引图像使用 索引图像chess.met的颜色图map,通过 抖动 map 中的颜色 ,产生 RGB 图像autumn.tif 的近似索引图像 。load chess; RGB=imread(autumn.tif); subplot(1,2,1);imshow(RGB); Y=dither(RGB,map) subplot(1,2,2);imshow(Y,map);(2)灰度图像转换为索引图像X,map=gray2ind(I,n)%按指定 的灰度级数
17、n 和颜色图 map,将 灰度图像 I 转换成 索引色%图像 X,n 的默认值为 64。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 31 页 - - - - - - - - - 例:将灰度图像 pout.tif 转化成索引图像 X,颜色图分别为 gray(128)和 gray(16)。I=imread(pout.tif); I1,map1=gray2ind(I, 128); I2,map2=gray2ind(I, 16); subplot(1,3,1);imshow(
18、I1,map1); subplot(1,3,2);imshow(I2,map2); subplot(1,3,3);imshow(I);(3)索引图像转换为灰度图像I=ind2gray(X,map)%将具有颜色图 map 的索引色图像 X 转换成 灰度图像 I, 去掉了图像的%色度和饱和度, 仅保留了 图像的亮度信 息。%输入图像可以是double或 unit8 类型。例:将一幅索引图像 trees.mat转换成灰度图像。load trees I=ind2gray(X,map); subplot(1,2,1);imshow(X,map); subplot(1,2,2);imshow(I);(4)
19、RGB 图像转换为灰度图像I=rgb2gray(RGB)%将真彩色图像 RGB 转换成灰度图像 I 。Newmap=rgb2gray(map)% 将颜色图 map 转换成 灰度级颜色图 。注意: 如果输入的是真彩色图像 ,则图像可以是8 位无符号类型或双精度类型,输出图像I 与输入图像类型相同。如果输入 的是颜色图 ,则输入和输出的图像均为双精度类型。*例: 将 RGB 图像 flowers.tif 转换为灰度图像。RGB=imread(flowers.tif); figure(1);imshow(RGB) figure(2);Y=rgb2gray(RGB);imshow(Y)(5)RGB 图
20、像转换为索引图像X,map=rgb2ind(RGB)%直接将 RGB 图像 转换为具有颜色图 map 的矩阵 X. X,map=rgb2ind(RGB,tol)% 用均匀量化 的方法将 RGB 图像转换为索引图像X. X,map=rgb2ind(RGB,n)%使用最小方差量 化的方法将 RGB 图像转换为索引图像,%map 中包括至少 n 个颜色 。X=rgb2ind(RGB,map)% 通过将 RGB 中的颜色 与颜色图 map 中最相近的颜色匹配 ,% 将 RGB 图像转换为具有 map 颜色图的索引图像。=rgb2ind(,dither_option)% 通过 dither_option
21、参数来设置是否抖动。 dither_option 为 dither 表示使用抖动 ,以达到% 较好的颜色效果; 缺省时为 nodither,使用了新颜色图中最接近的颜色来画原图的颜色。*例: 将 RGB 图像 flowers.tif转换为索引图像。RGB=imread(flowers.tif); figure(1);imshow(RGB) figure(2);Y=rgb2ind(RGB,128);imshow(Y)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 31 页
22、- - - - - - - - - (6)索引图像转换为 RGB 图像RGB=ind2rgb(X,map)% 将矩阵 X 及相应颜色图 map 转化成真彩图像 RGB。输入图像 X 可以是双精度类型或8 位无符号类型, 输出图像 RGB 为双精度类型。例:将索引图像 wmandril.mat 转换为 RGB 图像。load wmandril; figure(1);imshow(X,map); I=ind2rgb(X,map); figure(2);imshow(I)(7)通过阈值化方法将图像转换为二值图像im2bw 函数: 通过设置亮度阈值 将真彩图像 、索引图像 及灰度图像 转化成二值图像
23、。在转换过程中,如果 输入图像不是灰度图像,首先将其转换为灰度级图像,然后通过阈值化将灰度级图像转换成二值图像。输出二值图像在输入图像所有亮度小于给定值 (level 取值范围为0,1)像素点处 均为 0,其他均为 1。其语法格式为:BW=im2bw(I,level)% 将灰度图像 I 转化为黑白二值图像。BW=im2bw(X,map,level)% 将带有颜色图 map的索引图像 X 转化为黑白二值图像。BW=im2bw(RGB,level)%将 RGB 图像 转化为黑白二值图像。注意:输入图像 可以是双精度类型或8 位无符号类型, 输出图像 为 8 位无符号类型。例:通过阈值化方法将 索引
24、图像 trees.mat转换为 二值图像 ,阈值为 0.4。load trees; BW=im2bw(X,map,0.4); figure(1);imshow(X,map); figure(2);imshow(BW)(8)通过阈值化方法从灰度图像产生索引图像X=grayslice(I,n)%将灰度图像 I 均匀量化为 n 个等级 ,然后转换为 伪彩色图像 X。X=grayslice(I,v)%按指定的阈值向量v (每一个元素都在 0 和 1 之间)对图像 I 的值域 进行划分,而后转换成 索引图像 X。注意:输入图像 I 可以是双精度类型或8 位无符号类型。如果阈值数量小于 256, 则返回图
25、像 X 的数据类型是 8位无符号类型 , X 的值域为 0,n或0,length(v);否则,返回图像 X 为双精度类型 ,值域为 1,n+1或1,length(v)+1。*例:将一幅灰度图像转换成索引图像。I=imread(alumgrns.tif); figure(1);imshow(I); X=grayslice(I,16); figure(2);imshow(X,hot(16);(9)将矩阵转换为灰度图像I=mat2gray(X,xmin,xmax)% 按指定的取值区间xmin,xmax将数据矩阵X 转换为 图像I,xmin 对应灰度0(最暗 即黑) ,%xmax 对应灰度 1(最亮即
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图像处理常用命令matlab归纳 2022 图像 处理 常用命令 matlab 归纳
限制150内