注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

小人物的自述

为梦想而奋斗,没有梦想就没有希望!

 
 
 

日志

 
 

matlab图像处理常用函数  

2009-01-05 16:25:25|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

1.在MATLAB中如果要判断一个图像文件的类型,可使用如下指令:

l         isbw:若图像为二值图像,则返回真。

l         isgray:若图像为灰度图像,则返回真。

l         isind:若图像为索引图像,则返回真。

l         isrgb:若图像为RGB图像,则返回真。

2.在MATLAB系统中,要将一个类型的图像文件转换成另一个类型的图像文件,只需将前一个文件的图像数据用imread读出,再用imwrite以适当的格式写到后一个图像文件中去即可。另外,要将灰度图像I转换成RGB图像,可运用cat指令。cat函数可以把一些单一的图像合并成图像序列。在图像序列中每个图像需有相同的大小,如果是索引图像,色图也要一致。

此外,MATLAB还提供了若干函数,用于图像类型的转换。这些函数有:

l         dither:用抖动法(dithering)转换图像。该函数通过颜色抖动(颜色抖动即改变边沿像素的颜色,使像素周围的颜色近似于原始图像的颜色,从而以空间分辨率来换取颜色分辨率)来增强输出图像的颜色分辨率。该函数可以把RGB图像转换成索引图像或把灰度图像转换成二值图像。

l         gray2ind:灰度图像或二值图像向索引图像转换。

l         grayslice:设定阈值将灰度图像转换为索引图像。

l         im2bw:设定阈值将灰度、索引、RGB图像转换为二值图像。

l         im2double:将图像数组转换为double型。

l         im2uint8:将图像数组转换为uint8型。

l         im2uint16:将图像数组转换为uint16型。该函数不支持二值图像序列的转换。

l         ind2gray:索引图像向灰度图像转换。

l         ind2rgb:索引图像向RGB图像转换。

l         mat2gray:将一个数据矩阵转换为灰度图像。

l         rgb2gray:RGB图像向灰度图像转换或将彩色色图转换成灰度色图。

l         rgb2ind:RGB图像向索引图像转换。包含三种不同方法:均衡量化、最小值量化、色图映射。

l         im2java:一般图像向Java图像转换。

l         label2rgb:标志图像向RGB图像转换。

 2.2.3 图像的查询及读写

 

 在MATLAB中要查询一个图像文件的信息,只要用imfinfo指令加上文件及其完整路径名即可。函数调用格式为:

info = imfinfo(filename,fmt)

info = imfinfo(filename)

参数fmt对应于所有图像处理工具箱中所有支持的图像文件格式。

 

MATLAB提供了两个重要的用于图像文件的读写的指令,分别是从图像文件中读取数据的imread,以及将数据写入到图像文件中的imwrite。

1.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是指透明度。

2.imwrite的常用调用格式为:

imwrite(A,filename,fmt)

imwrite(X,map,filename,fmt)

imwrite(…,filename)

imwrite(…,Param1,Val1,Param2,Val2…)

其中imwrite(…,Param1,Val1,Param2,Val2…)可以让用户控制HDF、JPEG、TIFF等一些图像文件格式的输出特性。

  在MATLAB中,默认的保存类型是uint8。由于PNG和TIFF格式支持16位的图像,所以保存这类图像时,保存类型就是uint16。

2.2.4 图像的显示 

显示图像的最基本的手段是使用image函数。该函数还产生了图像对象的句柄,并允许对对象的属性进行设置。此外,imagesc函数也具有image的功能,所不同的是imagesc函数还自动将输入数据比例化,以全色图的方式显示。

imshow函数比image和imagesc更常用,它能自动设置句柄图像的各种属性。imshow可用于显示各类图像。对于每类图像,调用方法如下:

l         imshow filename:显示图像文件。

l         imshow(BW):显示二值图像,BW为黑白二值图像矩阵。

l         imshow(X,map):显示索引图像,X为索引图像矩阵,map为色彩图示。

l         imshow(I):显示灰度图像,I为二值图像矩阵。

l         imshow(RGB):显示RGB图像,RGB为RGB图像矩阵。

l         imshow(I,[low high]):将非图像数据显示为图像,这需要考虑数据是否超出了所显示类型的最大允许范围,其中[low high]用于定义待显示数据的范围。

有关图像显示的函数或其辅助函数,除了上述的以外,MATLAB还提供了一些用于进行图像的特殊显示的函数。

l         colorbar:为图像的显示增加一个颜色条,这一用法对于了解被显示图像的灰度级别特别有用。

l         getimage:获取图像数据。

l         immovie:将多帧索引图像制作成连续图像格式。其调用格式为:

mov = immovie(D,map)

不过这种功能只对索引图像有效,其中D为多帧索引图像阵列,map为索引图像的对应色阶。对于其他类型图像,则需要首先将其转换为索引图像。

l         montage:多帧图像的一次显示。它能将每一帧分别显示在一幅图像的不同区域,所有子区的图像都用同一个色彩条。

l         movie:播放多帧连续图像。

l         subimage:在一个图形区域内显示多个图像。

l         truesize:调整图像显示的尺寸。

l         warp:显示图像的纹理表面图。前面提到的图像显示手段都只能在二维平面上显示,MATLAB6.5的一个强大功能是能将平面图像显示在空间三维曲面上。这是由warp函数的纹理成图功能来实现的,该功能能通过双线性插值将平面图像投影到三维曲面上。

l         zoom:将图像或二维图形进行放大或缩小显示。zoom本身是是一个开关键,zoom on用于打开缩放模式,zoom off用于关闭该模式,zoom in用于放大局部图像,zoom out用于缩小图像。

至于多个图像的显示,则可分为两个方面:在不同的图形窗口显示不同的图像,可以用figure指令来实现;在同一个图形窗口显示多图,可以用subplot来实现。

  评论这张
 
阅读(38)| 评论(0)
推荐

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017