多媒体信息处理技术期中试卷(开卷)1.以下有两幅图像,其中图1(a)为待处理的图像。请找出一种灰度变换,使得1(a)经过该变换后具有图1(b)的灰度直方图。(此题算法有误,没能实现均衡化)图1(a)图1(b)要求:(1)显示出上述两图像的灰度直方图;(2)给出处理算法的基本步骤;(3)给出图1(a)经处理以后的结果图像及其直方图;(4)比较图1(b)与结果图像直方图,是否存在差别?若存在,请给出其原因。答:(1)0501001502002500100020003000400050006000图1直方图0501001502002500100020003000400050006000图2直方图(2)处理算法的基本步骤:1,读入图像2,利用imhist函数分别得到a图,b图的灰度直方图;3,灰度变换,把图1(a)的灰度从12~80变换到0~227,用imadjust函数实现;4,再次输出变化后的图1(a)的图像及灰度直方图。(3)图1灰度变换0501001502002500100020003000400050006000图1灰度变换直方图(4)比较图1(b)与结果图像直方图:可以看出,图1(b)的直方图比结果图像的直方图更密,原因是原图像的不同灰度值比图1(b)少,进行灰度变换后只能改变灰度的分布而不能改变灰度的多少,因此结果图像的直方图看上去比较稀疏。实验程序I1=imread('图1(a).jpg');%读入图像figure(1),imshow(I1);I2=imread('图(b).jpg');%读入图像title('原图')figure(2);imhist(I1);title('图1直方图')figure(3),imhist(I2);%分别显示两幅图像的直方图title('图2直方图')I3=imadjust(I1,[12/255,80/255],[0,227/255]);%对图1(a)进行灰度变换figure(4),imshow(I3);title('图1灰度变换')figure(5),imhist(I3);%显示图1(a)及其直方图title('图1灰度变换直方图')2.下述图像为一幅受椒盐噪声污染后的图像,试设计一款滤波器,对其进行去噪处理:图2要求:(1)写出滤波器的数学表达式;(2)给出经过滤波处理后的结果图像;(3)讨论滤波器尺寸与处理结果之间的关系。答:1,(1)中值滤波,滤波器的表达式:)},({),(ˆ),(tsgmedianyxfxySts(2)3*3模板进行中值滤波5*5模板进行中值滤波(3)滤波器尺寸与处理结果之间的关系:当滤波器的尺寸较小时,噪声不能被完全滤除;当滤波器的尺寸较大时,噪声能基本被滤除。分析原因:当滤波器的尺寸较小时,模板中心为噪声的概率较大,当滤波器的尺寸较大时,模板中非噪声的像素占多数,模板中心为噪声的概率较大。实验程序I0=imread('图2.jpg')I1=midfilt1(I0,3);%分别用3*3和5*5的模板进行中值滤波I2=midfilt1(I0,5);figure(1),imshow(I0);title('原图')figure(2),imshow(I1);%图像显示title('3*3模板进行中值滤波')figure(3),imshow(I2);title('5*5模板进行中值滤波')functiond=midfilt1(x,n)[p,q]=size(x);%输入图像是p×q的,且pn,qn%图像拓展以便模板处理原图边缘像素y=zeros(p+4,q+4);%y是一个p+4乘q+4的0矩阵y(3:p+2,3:q+2)=x;%将图像边缘外的两个像素均置0y(1:1,3:q+2)=x(1:1,1:q);y(2:2,3:q+2)=x(1:1,1:q);y(3:p+2,1:1)=x(1:p,1:1);y(3:p+2,2:2)=x(1:p,1:1);y(p+3:p+3,3:q+2)=x(p:p,1:q);y(p+4:p+4,3:q+2)=x(p:p,1:q);y(3:p+2,q+3:q+3)=x(1:p,q:q);y(3:p+2,q+4:q+4)=x(1:p,q:q);%将图像边缘外的两行、列像素置为图像边缘的像素x1=double(y);x2=x1;fori=1:pforj=1:qc=x1(i:i+(n-1),j:j+(n-1));%取出x1中从(i,j)开始的n行n列元素(5*5或3*3的一块)e=c(1,:);%是c矩阵的第一行foru=2:ne=[e,c(u,:)];%将c矩阵变为一个行矩阵endfora=1:n*nforb=1:n*n-aife(b)e(b+1)temp=e(b);e(b)=e(b+1);e(b+1)=temp;endendend%用冒泡排序法从小到大排序m=e((n*n+1)/2);%取出中值x2(i+(n-1)/2,j+(n-1)/2)=m;%将模板各元素的中值赋给模板中心位置的元素endend%未被赋值的元素取原值x3=x2(3:p+2,3:q+2);%把图像还原成原来大小d=uint8(x3);3.试求下述图像的2D傅里叶变换,并显示其二维频谱图像图3要求:(1)写出二维傅里叶变换的表达式;(2)若要求清晰地显示出频谱中明暗相间的条纹,请给出灰度变换表达式;(3)给出二维频谱图像(要求清晰地显示出频谱中明暗相间的条纹,且原点位于图像的中心位置)答:(1)二维傅里叶变换的表达式:112(//)00112(//)0011001(,)(,)(,)(,)1(0,0)(,)(,)1(,)22MNjuxMvyNxyMNjuxMvyNuvMNxyxyFuvfxyeMNfxyFuveFfxyMNMNfxyFuv(2)灰度变换一般表达式:g(x,y)=a+ln(f(x,y)+1)/blnc;(3)灰度变换前灰度变换后实验程序I0=imread('图3.bmp');temp1=fft2(I0);%求二维傅立叶变换temp2=fftshift(temp1);%原点位于图像的中心位置temp3=log(1+abs(temp2));%进行灰度变换figure;imshow(temp3,[]);title('灰度变换后')figure;imshow(temp2,[]);title('灰度变换前')4.请利用不同尺寸的理想低通滤波器对下述图像进行处理:图4要求:(1)给出不同尺寸滤波器处理的结果;(2)利用理想低通滤波器的点扩展函数(给出图像)解释上述处理结果中的振铃效应。答:IdealLPF,freq=25IdealLPF,freq=25IdealLPF,freq=35IdealLPF,freq=35IdealLPF,freq=45IdealLPF,freq=45(2)利用理想低通滤波器的点扩展函数(给出图像)解释上述处理结果中的振铃效应,:理想低通滤波器在频域是一个门函数,时域对应的是一个sinc函数。在滤波时,其在频域相乘就是时域相卷,sinc函数我们知道它是一个长度无限的函数,而且是波动的函数,频域相乘门函数,时域卷积sinc函数,其过程就是对sinc函数的搬移,这样在搬移后的sinc函数叠加的时候由于其波动性质就会对周围的点造成影响,从而出现振铃现象。实验程序I=imread('图4.bmp');%生成滤镜ff=imidealflpf(I,20);%应用滤镜out=imfreqfilt(I,ff);figure;imshow(I);%显示原图像title('Source');%计算FFT并显示temp=fft2(double(I));temp=fftshift(temp);temp=log(1+abs(temp));figure;imshow(temp,[]);title('Source');figure;imshow(out);title('IdealLPF,freq=20');%计算FFT并显示temp=fft2(out);temp=fftshift(temp);temp=log(1+abs(temp));figure;imshow(temp,[]);title('IdealLPF,freq=20');%生成滤镜ff=imidealflpf(I,30);%应用滤镜out=imfreqfilt(I,ff);%计算FFT并显示temp=fft2(double(I));temp=fftshift(temp);temp=log(1+abs(temp));figure;imshow(temp,[]);title('Source');figure;imshow(out);title('IdealLPF,freq=30');%计算FFT并显示temp=fft2(out);temp=fftshift(temp);temp=log(1+abs(temp));figure;imshow(temp,[]);title('IdealLPF,freq=30');%生成滤镜ff=imidealflpf(I,40);%应用滤镜out=imfreqfilt(I,ff);%计算FFT并显示temp=fft2(double(I));temp=fftshift(temp);temp=log(1+abs(temp));figure;imshow(temp,[]);title('Source');figure;imshow(out);title('IdealLPF,freq=40');%计算FFT并显示temp=fft2(out);temp=fftshift(temp);temp=log(1+abs(temp));figure;imshow(temp,[]);title('IdealLPF,freq=40');functionout=imfreqfilt(I,ff)%快速傅里叶变换f=fft2(double(I));%移动原点s=fftshift(f);%应用滤镜及反变换out=s.*ff;%对应元素相乘实现频域滤波out=ifftshift(out);out=ifft2(out);%求模值out=abs(out);%归一化并显示out=out/max(out(:));functionout=imidealflpf(I,freq)%freq为截止频率[M,N]=size(I);out=ones(M,N);fori=1:Mforj=1:Nif(sqrt(((i-M/2)^2+(j-N/2)^2))freq)out(i,j)=0;endendend5.请利用形态学滤波的方法,提取出下列图像的边界图5要求:(1)给出结构元素表达式;(2)给出形态学滤波的数学表达式;(3)给出处理结果。答:(1)结构元素为3*3的正方形;1,(2)形态学滤波的数学表达式:(3)内边缘外边缘内外边缘实验程序I=imread('图5.jpg');figure,imshow(I);se=strel('square',3);%3*3的正方形结构元素Ie1=imerode(I,se);%腐蚀得到内部点Iout1=I-Ie1;%得到内边缘figure,imshow(Iout1);Ie2=imdilate(I,se);%膨胀得到外部点Iout2=Ie2-I;%得到外边缘figure,imshow(Iout2);Iout3=Ie2-Ie1;%得到内外边缘figure,imshow(Iout3);6.请利用Canny算子提取下列图像中的边缘图6要求:(1)给出算法的主要步骤;(2)给出算法的处理结果。答:(1)算法的主要步骤一,用高斯滤波器平滑图像。二,用一阶偏导的有限方差来计算平滑后的数据阵列的梯度幅值和梯度方向。三,非极大值抑制,细化梯度幅值图像M(i,j)中的屋脊带,只保留幅值局部变化最大的点。四,用双阀值算法检测和连接边缘。(2)提取图像的边缘实验程序I=imread('图6.jpg');bw=edge(I,'canny');%canny