您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 造纸印刷 > 数字图像处理--唐雨
《数字图像处理》期末大作业暨课程考核报告班级:N电信10-1F姓名:唐雨学号:24102200137指导教师:吴建辉序号:26wujhlf@foxmail.com南湖学院机电系2013年6月目录第一部分.设计部分………………………………………………..1绘制灰度直方图,实现直方图均衡化和直方图规定化….1.1算法原理……………………………………………1.2算法设计…………………………………………1.3实验结果及对比分析…………………………………2.灰度图像的对比度增强………………………………….3.图像的几何变换…………………………………………..3.1算法原理………………………………………3.2算法设计…………………………………………3.3实验结果及对比分析…………………………………4.图像加噪,然后使用空域和频域进行滤波处理………..4.1算法原理…………………………………………4.2算法设计…………………………………………4.3实验结果及分析…………………………………5.采用robertprewittsobel对图像进行边缘提取………5.1算法原理…………………………………………5.2算法设计………………………………………5.3实验结果及分析………………………………第二部分:编写一个基于GUI的图像处理程序。………….…1.GUI整体界面………………………..…………………..2.功能实现部分…………………..………….………一、设计部分1绘制灰度直方图,实现直方图均衡化和直方图规定化1.1算法原理将灰度化图像的每个灰度级的像素个数统计出来,并计算占总像素的比例,就是灰度直方图。反映了各个灰度级分布的情况,为进一步处理图像打下基础。可以求出出图像的灰度直方图,然后进行均衡化,规定化。1.2算法设计绘制灰度直方图,实现直方图均衡化和直方图规定化算法流程图:直方图均衡算法流程图获取原图像行列数M、N入口参数:原图像直方图归一化初始化灰度级映射调用直方图统计函数获取直方图计算累积直方图结束获取均衡后图像直方图扫描图像,更新灰度级获取原图像行列数M、N入口参数:原图像扫描图像,统计每一灰度级出现次数结束初始化绘制直方图直方图统计算法流程图直方图规定化算法流程图获取原图像行列数M、N入口参数:原图像直方图归一化初始化灰度级映射调用直方图统计函数获取直方图计算累积直方图结束获取均衡后图像直方图扫描图像,更新灰度级1.3实验结果及对比分析(1)程序如下:clearI=rgb2gray(imread('tangyu.jpg'));%读入图像,并进行灰度处理subplot(2,2,1),imshow(I),title('灰度图像')%显示subplot(2,2,2),imhist(I),title('灰度图像的直方图')%显示ylim('auto');%设定刻度线和取值范围G=histeq(I,1024);%对图像I进行直方图均衡化处理,生成图像subplot(2,2,3),imshow(G),title('直方图均衡化处理图像')%显示subplot(2,2,3),imshow(G),title('直方图均衡化处理图像')ylim('auto')%设定刻度线和取值范围imwrite(I,'1.jpg')%将灰度图像I写入计算机imwrite(I,'1.jpg')%将均衡化后的图像I写入计算机ylim('auto')%设定刻度值和取值范围xlim('auto')%设定刻度值和取值范围K=histeq(I,[050100150200256])%进行直方图规定化subplot(2,2,4),imshow(K),title('直方图规定化处理图像')%显示ylim('auto')%设定刻度值和取值范围xlim('auto')%设定刻度值和取值范围imwrite(K,'K.jpg')%将K写入计算机(2)在mmatlab中的运行结果截图:2灰度图像的对比度增强2.1算法原理增强图像对比度实际是增强原图的各部分的反差。实际中往往是通过增强原图里某两个灰度值间的动态范围来实现的。通过调用库函数immultiply改变对比度。并和原灰度图像进行对比。2.1算法流程对比度改变算法流程图:2.3实验结果及对比分析(1)程序代码如下:a=imread('ty唐雨.jpg');%读图片函数b=rgb2gray(a);subplot(2,2,1);imshow(b);title('灰度化的图像');g=immultiply(b,0.5);%对比度变换subplot(2,2,2);读取原图像I=imread(’’)调用图像增强函数显示原图像、梯度图像结束开始imshow(g);title('对比度为0.5的图像');subplot(2,2,3);d=immultiply(b,5);imshow(d,5);title('对比度为5的图像');(2)实验结果:灰度化的图像对比度为0.5的图像对比度为5的图像3图像的几何变换3.1算法原理a、图像平移变换:b、图像缩放变换c、图像旋转d、图像仿射变换e、图像的镜像变换将图像水平或是垂直方向上的像素点进行调换。利用size函数得到图像的大小,m,n。若是水平镜像则X=m-x;若是垂直镜像则Y=n-y;(x,y)为原灰度图像的像素。(X,Y)镜像后图像的像素。3.2算法设计几何变换的算法流程图为::读取原图像I=imread(’’)调用图像增强函数显示原图像、梯度图像结束开始3.3实验结果及对比分析(1)程序代码如下:a.平移a=imread('ty唐雨.jpg');%读图片函数b=rgb2gray(a);subplot(1,2,1);imshow(b);title('原始图像');[M,N]=size(b);fory=1:N;forx=1:M;X=x+290;Y=y+130;ifX=1&&X=M&&Y=1&&Y=N;B(X,Y)=a(x,y);end;end;end;subplot(1,2,2);imshow(B);title('平移后的图形');运行结果:原始图像平移后的图形b.旋转程序代码:a1=imread('ty唐雨.jpg');%读图片函数b1=rgb2gray(a1);subplot(1,2,1);imshow(b1);title('原始图像');h=pi/4;[P,Q]=size(b1);k=1;X=zeros(1,P*Q);Y=zeros(1,P*Q);k=1;fory=1:Q;forx=1:P;X(k)=round(x*cos(h)-y*sin(h));%不大m的最大整数round()取整Y(k)=round(x*sin(h)+y*cos(h));k=k+1;end;end;xmin=round(min(X));%旋转后的图片尺寸xmax=round(max(X));ymin=round(min(Y));ymax=round(max(Y));h=xmax-xmin+1;w=ymax-ymin+1;subplot(1,2,2);r=zeros(h,w);%图像初始化k=1;x1=zeros(1,h*w);y1=zeros(1,h*w);forx=xmin:xmax%计算旋转后的坐标fory=ymin:ymaxx1(k)=round(x*cos(h)+y*sin(h));y1(k)=round(-x*sin(h)+y*cos(h));k=k+1;end;end;%计算旋转后的图像灰度c=h*w;a11=zeros(1,h*w);fork=1:c;ifx1(k)0&&x1(k)=P&&y1(k)0&&y1(k)=Q;a11(k)=b1(x1(k),y1(k));elsea11(k)=0;endendforx2=1:hfory2=1:wr(x2,y2)=a11((x2-1)*w+y2);endendimshow(r,[]);title('旋转45度的图形');运行结果:原始图像旋转45度的图形c.错切程序代码:a3=imread('ty.jpg');%读图片函数b3=rgb2gray(a3);subplot(1,2,1);imshow(b3);title('原始图像');[h0w0]=size(b3);th=pi/3;tga=tan(th);ctga=1/tan(th);%图像原四个顶点坐标srcx1=0;srcy1=0;srcx2=w0;srcy2=0;srcx3=0;srcy3=h0;srcx4=w0;srcy4=h0;%图像旋转后四个顶点坐标dstx1=srcx1;dsty1=srcy1;dstx2=srcx2;dsty2=tga*srcx2+srcy2;dstx3=srcx3;dsty3=srcy3;dstx4=srcx4;dsty4=tga*srcx4+srcy4;%计算旋转后图像的宽与高度h=max(abs(dsty4-dsty1),abs(dsty2-dsty3))+0.5;w=max(abs(dstx4-dstx1),abs(dstx2-dstx3))+0.5;h=floor(h);w=floor(w);r=zeros(h,w);forx=1:wfory=1:hx0=x;y0=floor(-x*tga+y+y);ifx00&&x0=w0&&y00&&y0=h0r(y,x)=b3(y0,x0);endendendsubplot(1,2,2);imshow(r,[]);axis([0,2000,0,2000])title('错切60度的图像');运行结果:d.缩放程序代码:a3=imread('ty唐雨.bmp');%读图片函数b3=rgb2gray(a3);figureimshow(b3);title('未缩放的图像')r=input('请输入缩放的倍数:');[mn]=size(b3);result=zeros(round(m*r),round(n*r));forx=ceil(2*r):m*r-2*rfory=ceil(2*r):n*r-2*rD(x,y)=b3(ceil(x/r),ceil(y/r));endendfigureimshow(D,[]);title('缩放后双线性插值法后的图像');运行结果:未缩放的图像输入0.5后的图形:缩放后双线性插值法后的图像e.镜像程序代码:a3=imread('E:\123.jpg');%读图片函数b3=rgb2gray(a3);subplot(1,2,1);imshow(b3);title('原始图像');[P,Q]=size(b3);fory=1:Q;forx=1:P;X=P-x;Y=Q-y;ifX=1&&X=P&&Y=1&&Y=Q;D(X,Y)=b3(x,y);end;end;end;subplot(1,2,2);imshow(D);title('镜像后的图形');运行结果:原始图像镜像后的图形4图像加噪(用输入参数控制不同噪声),然后使用空域和频域进行滤波处理4.1算法原理中值滤波法的原理:对一个窗口(记为W)内的所有像素灰度值进行排序,取排序结果的中间值作为W中心点处像素的灰度值。4.2实验结果及分析(1)程序代码:figurea=imread('ty唐雨.jpg');%读图片函数I=rgb2gray(a);subplot(2,2,1);imshow(I);title('原图');In=imnoise(I,'gauss',0.02);subplot(2,2,2);imshow(In);title('加高斯噪声后的图形');d=medfilt2(In);subplot(2,2,3)imshow(d);title('中值滤波后的图形');e=filter2(fspecial('average',5),In)/255;subplot(2,2,4);imshow(e);title('5*5平均值滤波后的图形');figurea=imread(''ty唐雨.jpg'');%读图片函数I=rgb2gray(
本文标题:数字图像处理--唐雨
链接地址:https://www.777doc.com/doc-3788201 .html