《数字图像处理》课程设计报告

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

11.课程设计目的1、提高分析问题、解决问题的能力,进一步巩固数字图像处理系统中的基本原理与方法。2、熟悉掌握一门计算机语言,可以进行数字图像的应用处理的开发设计。2.课程设计内容及实现、二维快速傅立叶变换:本项目的重点是:这个项目的目的是开发一个2-DFFT程序“包”,将用于在其他几个项目。您的实现必须有能力:(a)乘以(-1),x+y的中心变换输入图像进行滤波。(b)一个真正的函数相乘所得到的(复杂的)的阵列(在这个意义上的实系数乘以变换的实部和虚部)。回想一下,对相应的元件上完成两幅图像的乘法。(c)计算傅立叶逆变换。(d)结果乘以(-1)x+y的实部。(e)计算频谱。基本上,这个项目实现了图。。如果您正在使用MATLAB,那么您的傅立叶变换程序将不会受到限制,其大小是2的整数次幂的图像。如果要实现自己的计划,那么您所使用的FFT例程可能被限制到2的整数次幂。在这种情况下,你可能需要放大或缩小图像到适当的大小,使用你的程序开发项目02-04逼近:为了简化这个和以下的工程(除项目04-05),您可以忽略图像填充(4.6.3节)。虽然你的结果不会完全正确,将获得显着的简化,不仅在图像的大小,而且在需要裁剪的最终结果。由这种近似的原则将不会受到影响结果如下:主要代码f=imread('(a).jpg');H=imread('(a).jpg');subplot(3,2,1);imshow(f);title('(a)原图像');[M1,N1]=size(f);f=im2double(f);[M2,N2]=size(H);H=im2double(H);%把灰度图像I1的数据类型转换成转换成双精度浮点类型forx=1:M1fory=1:N1f(x,y)=(-1)^(x+y)*f(x,y);%用(-1)^(x+y)乘以输入图像,来实现中心化变换endendF=fft2(f);%使用函数fft2可计算傅立叶变换subplot(3,2,3);imshow(F);title('(b)傅立叶变换的图像');if(M2==1)&&(N2==1)G=F(x,y)*H(x,y);elseif((M1==M2)&&(N1==N2))forx=1:M1fory=1:N1G(x,y)=F(x,y)*H(x,y);endendelseerror('输入图像有误','ERROR');end%通过两个图像的乘法程序,实现对相应元素的相乘g=ifft2(G);subplot(3,2,4);imshow(g);title('(c)傅立叶逆变换的图像');forx=1:M1fory=1:N1g(x,y)=(-1)^(x+y)*g(x,y);endendg=real(g);S=log(1+abs(F));%计算傅立叶幅度谱并做对数变换subplot(3,2,5);plot(S);%二维图像显示幅度谱3title('(d)二维图像显示幅度谱');Q=angle(F);%计算傅立叶变换相位谱subplot(3,2,6);plot(Q);title('(e)二维图像显示相位谱');%二维图像显示相位谱结果截图图1傅里叶变换及频谱图结果分析:图1中(a)是原始灰度图像,对原图进行傅里叶变换,用(-1)^(x+y)乘以输入图像,来实现中心化变换得到(b),(c)为傅里叶变换的逆变换得到的图像。对应(d)、(e)分别为计算的幅度谱和相位谱。、傅立叶频谱和平均值本项目的重点是:(a)下载图。(a)和计算(居中)傅立叶频谱。(b)显示频谱。(c)使用(a)中计算图像的平均值的结果结果如下:主要代码%abs-取绝对值和复数幅度%fft2-求二维离散傅立叶变换I=imread('(a).jpg');I1=fft2(I);X=fftshift(abs(I1));%直流分量移到频谱中心[m,n]=size(X);Average_value=X(m/2+1,n/2+1)/(m*n)%平均值计算I1=abs(I1)*256/max(max(abs(I1)));%傅立叶谱图像X=X*256/max(max(X));%中心化的傅立叶谱图像'subplot(1,3,1);imshow(I);title('(a)原图像');subplot(1,3,2);imshow(I1);title('(b)傅立叶谱图像');subplot(1,3,3);imshow(X);title('(c)中心化的傅立叶谱图像');结果截图5图1计算图像的频谱图并中心化图3平均值结果分析:图2中(a)为原始图像,先对图像进行傅里叶变换得到(b),然后移至频谱中心得到(c),图3为图像的平均值的结果,此结果是在matlab窗口中实现的。、低通滤波本项目的重点是:(a)实现高斯低通滤波器式。()。你必须能够指定大小,M×N的,由此产生的2D功能。此外,你必须能够指定二维高斯函数的中心位置(b)下载图。(一)[这个形象是同图。(a)〕和低通滤波器中取得图。(三)结果如下:主要代码I=imread('(a).jpg')subplot(1,2,1);imshow(I);title('(a)原始图像');s=fftshift(fft2(I));[M,N]=size(s);%分别返回s的行数到M中,列数到N中n=2;%对n赋初值%高斯低通滤波,这里以标准差d0=30来分析图像d0=30;%初始化d0n1=floor(M/2);%对M/2进行取整n2=floor(N/2);%对N/2进行取整fori=1:Mforj=1:Nd=sqrt((i-n1)^2+(j-n2)^2);%点(i,j)到傅立叶变换中心的距离h=1*exp(-1/2*(d^2/d0^2));%GLPF滤波函数s(i,j)=h*s(i,j);%GLPF滤波后的频域表示endends=ifftshift(s);%对s进行反FFT移动%对s进行二维反离散的Fourier变换后,取复数的实部转化为无符号8位整数s=uint8(real(ifft2(s)));%创建图形图像对象subplot(1,2,2);imshow(s);%显示高斯低通滤波处理后的图像title('(b)高斯低通滤波(d0=30)');结果截图图2高斯低通实现的图像结果分析:7图4中(a)为原始图像,将原始图像经过高斯低通滤波,得到(b),这里以标准差d0=15来分析图像。、使用一个低通图像高通滤波本项目的重点是:(a)从原来的04-03项目减去你的形象得到锐化后的图像,如式。()。你会注意到,生成的图像并不像高斯高通图。。解释为什么会是这样(b)调整的方差高斯低通滤波器,直到图像相减得到的结果看起来类似于图。(三)。解释你的结果结果如下:主要代码I=imread('(a).jpg')s=fftshift(fft2(I));[M,N]=size(s);%分别返回s的行数到M中,列数到N中n=2;%对n赋初值%高斯低通滤波,这里以标准差d0=30来分析图像d0=30;%初始化d0n1=floor(M/2);%对M/2进行取整n2=floor(N/2);%对N/2进行取整fori=1:Mforj=1:Nd=sqrt((i-n1)^2+(j-n2)^2);%点(i,j)到傅立叶变换中心的距离h=1*exp(-1/2*(d^2/d0^2));%GLPF滤波函数s(i,j)=h*s(i,j);%GLPF滤波后的频域表示endends=ifftshift(s);%对s进行反FFT移动%对s进行二维反离散的Fourier变换后,取复数的实部转化为无符号8位整数s=uint8(real(ifft2(s)));%创建图形图像对象subplot(1,2,1);imshow(s);%显示高斯低通滤波处理后的图像title('(a)高斯低通滤波实现的图片');s=fftshift(fft2(I));[M,N]=size(s);%分别返回s的行数到M中,列数到N中n=2;%对n赋初值%高斯高通滤波,这里以标准差d0=30来分析图像d0=30;%初始化d0n1=floor(M/2);%对M/2进行取整n2=floor(N/2);%对N/2进行取整fori=1:Mforj=1:Nd=sqrt((i-n1)^2+(j-n2)^2);%点(i,j)到傅立叶变换中心的距离h=1-1*exp(-1/2*(d^2/d0^2));%GLPF滤波函数s(i,j)=h*s(i,j);%GLPF滤波后的频域表示endends=ifftshift(s);%对s进行反FFT移动%对s进行二维反离散的Fourier变换后,取复数的实部转化为无符号8位整数s=uint8(real(ifft2(s)));%创建图形图像对象subplot(1,2,2);imshow(s);%显示高斯高通滤波处理后的图像title('(b)高斯高通滤波实现的图片');结果截图9图3高通实现的图像结果分析:图5中(a)为经过高斯低通处理的图像,将此图像经过高斯高通处理得到(b)。、在频域的相关性本项目的重点是:下载图。(a)及(b)和重复例获得图。(E)。给(的x,y)的二维相关函数中的最大值的位置的坐标。有没有必要在图中绘制的档案中。(F)结果如下:主要代码clear;clc;fa=imread('(a).jpg');fb=imread('(b).jpg');subplot(2,2,1);imshow(fa);title('(a)原始图像');subplot(2,2,2);imshow(fb);title('(b)模板');[AB]=size(fa);[CD]=size(fb);expfa=zeros(A+C-1,B+D-1);expfb=zeros(A+C-1,B+D-1);expfa(1:A,1:B)=fa;expfb(1:C,1:D)=fb;subplot(2,2,3);imshow(expfa);title('(c)图像延拓');subplot(2,2,4);imshow(expfb);title('(d)图像延拓');H=real(ifft2(fft2(expfa).*fft2(rot90(expfb,2),293,297)));%求相关性figure;imshow(H,[])title('(e)两图像延拓之后的相关函数');max(H(:))%求取最大的相关值——因为是利用模板做的相关运算,值最大的地方最相关thresh=;%设置一个略低于最大相关值的阈值figure;imshow(Hthresh)%显示定位.title('(f)图像定位');结果截图11图4两原始图像的延拓图7延拓之后图像图8图像定位图9结果结果分析:图6中(a)是图像,(b)是模板。延拓后的图像如图6中的(c)、(d)所示。两延拓图像的空间域相关以图像形式显示与图7中的(e),图8中的(f)显示的是图像的定位图。3.课程设计总结与体会本次实验,通过使用MATLAB中的图像处理工具箱中的函数,对每个图像处理函数的功能都有了深入了认识。了解了日常看到的图片为什么会有各种模糊问题,也知道了该如何解决一些基本的图像问题。希望下次能知道更多使用MATLAB来解决新的问题。

1 / 12
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功