在matlab中实现图像的读取与转换 (恢复)_第1页
在matlab中实现图像的读取与转换 (恢复)_第2页
在matlab中实现图像的读取与转换 (恢复)_第3页
在matlab中实现图像的读取与转换 (恢复)_第4页
在matlab中实现图像的读取与转换 (恢复)_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、在matlab中实现图像的读取与转换:1.读取图像(1)读取索引图像indX,map=imread('f:ind.bmp');image(X); %显示矩阵x图像的结构colormap(map) %设置色图,用image必须有色阵图或者X,map=imread('f:ind.bmp');imshow(X)或者:im=imread('bottle.png');%im是任意取得名字, 注意把图片放在matlab的工作区,及M文件所放的位置(M 文件也一定放在matlab work区,否则路径不对调用不了)(2)读取灰度图像grayI=imread(&

2、#39;f:gray.bmp');imshow(I)或者I=imread('f:gray.bmp');imagesc(I,0 255); %预处理colormap(gray); %灰度处理,显示灰度图像结构pause %停留imshow(I) %显示灰度图像(3)读取彩色图像RGBRGB=imread('f:rgb.bmp');image(RGB); %显示RGB图像的结构pause;imshow(RGB); %显示RGB图像(4)读取二值图像BWBW=imread('f:bw.bmp');imshow(BW)1.图像转换(1)彩色Rgb

3、到灰度gray X,map=imread('f:rgb.jpg');subplot(211),imshow(X);I=rgb2gray(X);subplot(212),imshow(I,map)或者RGB=imread('f:rgb.jpg');subplot(211),imshow(RGB);I=rgb2gray(RGB);subplot(212),imshow(I)(2)彩色rgb到索引indRGB=imread('f:rgb.jpg');subplot(211),imshow(RGB);X,map=rgb2ind(RGB,8);subplo

4、t(212),imshow(X,map)(3)彩色RGB到二值bwRGB=imread('f:rgb.jpg');subplot(211),imshow(RGB);level=graythresh(RGB);BW=im2bw(RGB,level);subplot(212),imshow(BW)Matlab 最大值滤波 中值滤波 最小值滤波 函数 ordfilt2ordfilt2函数在MATLAB图像处理工具箱中提供了二维统计顺序滤波函数ordfilt2函数。二维统计顺序滤波是中值滤波的推广,对于给定的n个数值al ,a2,.,an,将它们按大小顺序排列,将处于第k个位置的元素作

5、为图像滤波输出,即序号为k的二维统计滤波。ordfilt2函数语法格式为:Y=ordfilt2(X,order,domain)Y=ordfilt2(X,order,domain,S)其功能是:对图像X作顺序统计滤波,order为滤波器输出的顺序值,domain为滤波窗口。S是与domain大小相同的矩阵,它是对应domain中非零值位置的输出偏置,这在图形形态学中是很有用的。例如:Y=ordfilt2(X,5,ones(3,3),相当于3×3的中值滤波Y=ordfilt2(X,1,ones(3,3),相当于3×3的最小值滤波Y=ordfilt2(X,9,ones(3,3),

6、相当于3×3的最大值滤波Y=ordfilt2(X,1,0 1 0;1 0 1;0 1 0),输出的是每个像素的东、西、南、北四个方向相邻像素灰度的最小值。个人备注:这里,因为模板是3*3,那么邻域内的数据就按1-9由小到大排序,所以函数的第二个参数:5、1、9就分别对应的是中值、最小值、最大值,所以这种参数的设置也就是中值滤波、最小值滤波、最大值滤波。第二个参数的作用取决于模板的大小。 Matlab函数rgb2gray简介函数功能:将真彩色图像转换为灰度图像。在matlab命令窗口中键入doc rgb2gray或help rgb2gray可以获得更多关于该函数的帮助信息。调

7、用格式:I = rgb2gray(RGB)将真彩色RGB图像转换成灰度图像。(RGB并不发生变化)newmap = rgb2gray(map)返回一个灰度调色板。相关函数: ind2gray, mat2gray, ntsc2rgb, rgb2ind, rgb2ntsc程序示例% 1. 显示RGB真彩色图像imgrgb = imread('flower.jpg');figure('Name', '显示真彩色图像')imshow(imgrgb)% 2. 显示灰度图像imggray = rgb2gray(imgrgb);figure('Name

8、', '显示灰度图像')imshow(imggray)中值滤波函数medfilt2(A,m n) m n表示滤波器的大小,即是m*n的滤波器,m行n列的滤波器,滤波器也成模板 medfilt2, matlab, 消除噪声, 中值滤波器, 椒盐噪声在图像处理中,在进行如边缘检测这样的进一步处理之前,通常需要首先进行一定程度的降噪。中值滤波是一种非线性数字滤波器技术,经常用于去除图像或者其它信号中的杂讯。这个设计思想就是检查输入信号中的采样并判断它是否代表了信号,使用技术个采样组成的观察窗实现这项功能。观察窗口中的数值进行排序,位于观察窗中间的中值作为输

9、出。然后,丢弃最早的值,取得新的采样,重复上面的计算过程。中值滤波是图像处理中的一个常用步骤,它对于斑点噪声(en:speckle noise)和椒盐噪声(en:salt-and-pepper noise)来说尤其有用。保存边缘的特性使它在不希望出现边缘模糊的场合也很有用。当要求在降低噪声的同时要求保持边缘,中值滤波较卷积有更好的效果。在matlab中,medfilt2函数用于执行二维中值滤波,使用方法如下:B = medfilt2(A, m n) B = medfilt2(A)B = medfilt2(A, indexed, .)其中m n表示邻域块的大小,默认值为3 3。/b=m

10、edfilt2(a,m,n);b是中值滤波后的图象矩阵,a是原图矩阵,m和n是处理模版大小,默认3×3。例如:我们先在一个图像上加入椒盐噪声,然后使用中值滤波将其去除。 I = imread(eight.tif);J = imnoise(I,salt & pepper,0.02);K = medfilt2(J);imview(J), imview(K)复制代码由上例图形可以看出,不论什么样的方法,消除噪声的同时,都会使原图像信息有所丢失!相关函数:filter2, ordfilt2, wiener2参考文献:1 Matlab7.0帮助文档2 Lim, Jae S., Two-Dimensional Signal and Image Processing, Englewood

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论