资源描述:
《实验一图像增强实验.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验一图像增强实验实验目的:1.掌握图像增强的算法2.学习利用MATLAB进行图像的增强实验内容:1.图像的点操作、邻域操作算法2.图像的直方图处理算法实验步骤:1.读入图像,用MATLAB函数实现图像读入(1)启动MATLAB(2)在命令行窗口直接输入MATLAB命令,按“回车”键后执行(3)读入命令和显示命令分别为imread和imshow(4)如A=imread('D:上官军medicalimagewoman.jpg')Imshow(A)结果显示2.实现图像点操作运算(gamma校正和对数校正)(1)根据图像线形变换三种形式,图像反转S=L-1-r、对数变换S=c*log(1
2、+r)、幂次变换S=c*r.^γ编写图像点操作函数(2)建立新的M文件,点操作函数代码如下:functions=dian(r,leixing,chengshu,gamma1)%r为处理图像,leixing为操作类型s1=imread(r);s2=im2double(s1);%将图像转为double数据型switchleixingcase'fanzhuan's=1-s2;case'duishu's=chengshu*log(1+s2);case'gamma's=chengshu*s2.^gamma1;otherwiseerror('错误')endsubplot(1,2,1),imshow(
3、s1);subplot(1,2,2),imshow(s);(3)实际操作,如反转:Y=dian('D:上官军medicalimagewoman.jpg','fanzhuan',1,1);3.图像邻域处理(1)图像邻域处理是通过设计相应的滤波器来处理相邻图像像素,主要为均值滤波器、中指滤波器、高斯滤波器等(2)建立新的M文件,均值滤波函数代码如下:functiond=avefilt(x,n)a(1:n,1:n)=1;%a即n×n模板,元素全是1p=size(x);%输入图像是p×q的x1=double(x);%A(a:b,c:d)表示A矩阵的第a到b行,第c到d列的所有元素fori=
4、1:p(1)-n+1forj=1:p(2)-n+1c=x1(i:i+(n-1),j:j+(n-1)).*a;%取出x1中从(i,j)开始的n行n列元素与模板相乘s=sum(sum(c));%求c矩阵(即模板)中各元素之和x1(i+(n-1)/2,j+(n-1)/2)=s/(n*n);%将模板各元素的均值赋给模板中心位置的元素endendd=uint8(x1);subplot(1,2,1),imshow(x);title('均值滤波前图像');subplot(1,2,2),imshow(d);title('均值滤波后图像');(3)实际操作,代码如下:A=imread('D:上官军me
5、dicalimagewoman.jpg');Y=avefilt(A,3);4.直方图的均衡处理(1)图像直方图利用MATLAB工具箱中imhist产生,根据直方图均衡计算公式:编写直方图均衡函数(2)建立新的M文件,直方图均衡代码如下:functions=zhifangtu(r)s1=r;[m,n]=size(s1);%检测图像大小count=0;s2=zeros(m,n);%s2是行列分别为m、n的0矩阵s3=zeros(1,255);figure,imhist(s1);[counts]=imhist(s1);fork=1:255count=count+counts(k);s3(k)
6、=255*count/(m*n);end%根据直方图均衡公式编写forx=1:mfory=1:ns2(x,y)=s3(s1(x,y)+1);endends=s2;s=mat2gray(s);s=im2uint8(s);subplot(1,2,1),imshow(s);title('均衡后的图片');subplot(1,2,2),imhist(s);title('均衡后的直方图');(3)实际操作,代码如下:A=imread('D:上官军medicalimagewoman.jpg');Y=zhifangtu(A)