您好,欢迎访问三七文档
空间域图像增强Matlab实现一、MATLAB数字图像处理基础(一)读取图像1.语法:Imread(‘filename’)imread('filename');具体实现imread('D:\filename.jpg')2.给出一幅图像的行数和列数size(f);[MN]=size(f);3.显示一个数组的附加信息whosf(二)显示图像1.语法imshow(f,G);imshow(f,[lowhigh]);imshow(f,[]);2.光标上显示图像的像素值pixval;3.同时显示两个窗口figure;4.显示不同类型的图像imshow(X,map)%显示索引图像imshow(I);%显示灰度图像BW=imread('001.jpg');imshow(BW);%显示二值图像RGB=imread('001.jpg');imshow(RGB);%显示RGB图像(三)保存图像imwrite(f,'001','tif');imwrite(f,'001.jpg','quality',q);(四)图像类型之间的变换1.将灰度值限定在[0,1]内mat2gray(f);2.将灰度值限定在[0,255]的范围内im2unit8(f);3.抖动函数BW=dither(I);%将灰度图像I抖动成二值图像4.将灰度图像转化索引图像[X,map]=gray2ind(I,n);%例I=imread('001.jpg');[X,map]=gray2ind(I,6);imshow(X,map);5.通过设定域值将灰度图象转化成索引图像X=grayslice(I,n);X=grayslice(I,v);6.将灰度图像变成RGB图像RGB=cat(3,I,I,I);7.通过设置亮度域值将真彩图像、索引图像、灰度图像转化成二值图像BW=im2bw(I,level);BW=im2bw(X,map,level);BW=im2bw(RGB,level);8.将索引图像转化成灰度图像I=ind2gray(X,map)9.将索引图像转化成真彩色图像RGB=ind2rgb(X,map);10.将一个矩阵转换成灰度图像I=mat2gray(A,[aminamax]);I=mat2gray(A);(五)图像的运算imadd(I,J);immultiply(I,J);imdivide(I,J);k=imdivide(imadd(I,J),2);(六)图像的缩放imresize(I,1.25);imresize(I,[100150]);imresize(I,[100150],'bilinear');(七)旋转图像imrotate(I,35,'bilinear');(八)裁切图像imshow001.jpg;I=imcrop;imshow(I)二、亮度变换函数1.imadjust函数g=imadjust(f,[low_inhigh_in],[low_outhigh_out],gamma);2.图像的负片g=imcomplement(f);3.对数和对比度拉伸变换g=c*log(1+double(f))4.将灰度值限定在[0,1]内mat2gray(f);5.将灰度值限定在[0,255]的范围内im2unit8(f);三、直方图处理1.直方图的绘制(1)基本语法:imhist(f,b)b的默认值为256(2)归一化:p=imhist(f,b)/numel(f)例:具体操作。2.直方图均衡化(1)基本语法g=histeq(f,nelv)nelv为指定灰度等级(64)例:3.直方图规定化基本语法:g=histeq(f,hspec)四、空间滤波1.线性滤波语法:g=imfilter(f,w,filtering_mode,boudary_options,size_options)参数:corr相关conv卷积P用p值来填充,默认值是0‘replicate’通过复制外边界的值来扩展‘symmetric’通过镜像反射其边界值‘Circular’将图像看做是一个二维周期函数的一个周期来扩展Full图像大小与扩展后的图像大小相同same与输入图像大小相同通用语法g=imfilter(f,w,’replicate’)举例2.非线性滤波器语法:g=colfilt(f,[mn],’sliding’,@fun,parameters)填充fp=padarray(f,[rc],method,direction)方法;replicate’,‘symmetric’,‘circular’方向:pre在每一维的第一个元素前填充post在每一维的第一个元素前填充both在每一维的前一个元素和最后一个元素填充举例演示五、标准处理工具箱的标准空间滤波器1.线性空间滤波器生成滤波器的函数fspecial语法:w=fspecial(‘type’,parameter)类型(1)average语法fspecial(‘average’,[rc])默认3*3,一个数代表方形(2)disk语法fspecial(‘average’,r)半径默认为5(3)gaussian语法fspecial(‘average’,[rs],sig)标准偏差为正,默认值为3*30.5(4)laplacian语法fspecial(‘laplacian’,alpha)[01]默认值为0.5(5)log高斯-拉普拉斯滤波器语法fspecial(‘log’,[rc],sig)5*50.5(6)motion语法fspecial(‘motion’,len,theta)90(7)prewitt语法fspecial(‘prewitt’)垂体梯度(8)sobel语法fspecial(‘sobel’)(9)unsharp语法fspecial(‘unsharp’,alpha)3*30.22.非线性滤波器生成非线性滤波器的函数是ordfilt2,生成统计排序滤波器。(1)基本语法g=ordfilt2(f,order,domain)(2)最小值滤波器g=ordfilt2(f,1,ones(m,n))(3)最大值滤波器g=ordfilt2(f,m*n,ones(m,n))(4)中值滤波器g=ordfilt2(f,median(1:m*n),ones(m,n))(5)二维中值滤波器g=medfilt2(f,[mn],padopt)
本文标题:59数字图像处理
链接地址:https://www.777doc.com/doc-3223937 .html