北航数字图象处理实验报告_第1页
北航数字图象处理实验报告_第2页
北航数字图象处理实验报告_第3页
北航数字图象处理实验报告_第4页
北航数字图象处理实验报告_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数字图像处理实验报告实验二图像变换实验1. 实验目的学会对图像进行傅立叶等变换,在频谱上对图像进行分析,增进对图像频域上的感性 认识,并用图像变换进行压缩。2. 实验内容对lena或cameraman图像进行傅立叶、离散余弦、哈达玛变换。在频域,对比他们的 变换后系数矩阵的频谱情况,进一步,通过逆变换观察不同变换下的图像重建质量情况。3. 实验要求实验采用获取的图像,为灰度图像,该图像每象素由8比特表示。具体要求如下:(1) 输入图像采用实验1所获取的图像(lena、cameraman);(2) 对图像进行傅立叶变换、获得变换后的系数矩阵;(3) 将傅立叶变换后系数矩阵的频谱用图像输出,观察频

2、谱;(4) 通过设定门限,将系数矩阵中95%的(小值)系数置为0,对图像进行反变换, 获得逆变换后图像;(5) 观察逆变换后图像质量,并比较原始图像与逆变后的峰值信噪比(psnr)。(6) 对输入图像进行离散余弦、哈达玛变换,重复步骤1-5;(7) 比较三种变换的频谱情况、以及逆变换后图像的质量(psnr)。4. 实验结果1. dft的源程序及结果 j=imreadc 10021033. bmp);p=fft2(j);for i=0:size(p,1)-1 for j=1:size(p,2)g(i*size(p, 2)+j)=p(i+1 ,j);endq=sort (g);for i=1:si

3、ze (q, 2)if (i<size(q. 2)*0. 95 && i+1>=size(q, 2)*0. 95) t=q ;endendg (abs (g) <t)二0;for m=1:size (p, 2)w (n+1,m) = g (n*s i ze (p,2) +m); endendf2=ifft2(w);f3=uint8(f2);axes (hand ies.axes2):imshow(f3)axes (handles, axesl);imshow(j)psnr 1 二psnr (j, f3);set (handles.text3. str ing,

4、psnr1): h otherexp2part实辁 2psnr32.4671尿囝交挨后复ss耳里叶变挨dct哈达玛变疾返回2. dct的源程序及结果j=imreadc 10021033. bmp);p二dct2 (j);for i=0:size(p, 1)-1 for j=1:size(p,2)g(i*size(p. 2)+j)=p(i+1, j); endend0=sort (g);for i=1:size(q, 2)if (i<size(q.2)*0. 95 && i+1>=size(q. 2)*0. 95) t=q(i);endendg(abs (g) <

5、;t) =0; for n=0:size(p, 1)-1for m=1:size (p,2)w (n+1,m) = g (n*s i ze (p, 2) +m): endendf2=idct2(w); f3=u i nt8 (f2); axes (hand ies.axes2); imshow(f3)axes (hand ies.axesl); imshow(j)psnr1=psnr (j, f3);set(handles. text3, str ing,psnr1); q otherexp2part$葢2psnr33.9157叶变換dct咍达玛变換边囝3. 哈达玛变换的源程序及结果 j=im

6、read c cat. jpg);j=rgb2gray (j);p=hadamard (512)*(im2doubie(j)*hadamard(512); for i=0:size(p,1)-1for j二1:size(p,2)g(i*size(p, 2)+j)二p(i+1, j);endendqsort(g);for i=1:size(q, 2)if (i<size(q,2)*0. 5 && i+1=size(q,2)*0. 5) t=0(i);endendg (abs (g) <t)=0;for n=0:size(p,1)-1for m=1:size(p, 2)

7、w (n+1, m)= g (n*s i ze (p, 2) +m);endendf2= i nv(hadamard(512)*w* i nv(hadamard (512); mm 1 二max (max (f 2) ; mn 1 i n (m i n (f2); f2=255+255/(mm1-mn1)*(f2-mm1); f3=uint8(f2);axes (hand ies.axes2); imshow(f3)axes (handles.axesl); imshow(j)psnr1=psnr (j, f3);set (handles. text3,t str ing',psnrl

8、);3 otherexp2part o 丨:! j实始2psnr22 3745s田交挨后趸眾囝傳里叶交挟dct哈:i玛交换逐囷实验三图像复原实验1. 实验目的利用反向滤波和维纳滤波进行降质图像复原,比较不同参数选择对复原结果的影响。2. 实验内容(1) 利用反向滤波方法迸行图像复原;(2) 利用维纳滤波方法进行图像复原。3. 实验要求(1) 输入图像采用实验1所获取的图像,对输入图像采用运动降质模型,如下式所示h(“,v)=7rau + bv)sin<r(6fw + /?v)exp-7>t(6rw4-/7v)w,v = -w/2,一yv/2 + l”.,一l,0,l”.”7v/2-

9、l与降值图像相关的参数是:t = 5,a = i,b = i;(2) 对每一种方法通过计算复原出来的图像的峰值信噪比,进行最优参数的选择,包括反 向滤波方法中进行复原的区域半径a、维纳方法中的噪声对信号的频谱密度比值k;(3) 将降质图像和利用最优参数恢复后的图像同时显示出来,以便比较。4. 实验结果1. 运动降质的源代码及结果l = imread( 10021033. bmp');%l二rgb2gray (i);f:fft2(l);f=fftshift(f);for m=-(size(f, 1)+1 )/2) : (size (f, 1) +1)/2for n=s i ze (f,

10、2) /2: s i ze (f,2) /2h(m+(size(f, 1)+1)/2)+1,n+s i ze (f, 2)/2+1)=5*si n(p i * (m+n)*exp (-sqrt (-1)*p i * (m+n )/(pi*(m+n);endendfor m=1:size(f, 1)for n=1 : s i ze (f, 2)if (i snan (rea i (h (m, n)g (m,n) :f (m,n);h(m,n)二1 ;elseg (m, n) =f (m, n) *h (mr n); endendendg:ifft2(g); t1=abs (g);mm二max (

11、max (t1):mn=mi n(mi n(t1); t1 =255+255/(mm-mn)*(t1-mm); t二uint8(t1);axes (handles.axesl); imshow (t)降质图2. 逆滤波的源代码及结果l = imread( 10021033. bmp');f:fft2(l);f二fftshift(f);for m二-(size(f, 1)+1 )/2) : (size (f, 1) +1)/2for n=-size(f, 2)/2: size (f, 2)/2h (m+ (size (f, 1)+1) /2) +1 r n+s i ze (f, 2) /

12、2+1) =5*s i n (p i * (m+n) *exp (sqrt (-1) *p i * (m+n)/(pi*(m+n);endendfor m=1:size(f, 1)for n=1 : s i ze (f, 2)if (i snan (rea i (h (m, n)g (m,n) =f (m,n);h(m, n)=1 ;elseg (mf n) =f (m, n) *h (mf n); endendendfor m=1:size(f, 1)for n=1 : s i ze (f, 2)if (mk2<200000)f1 (m, n) =g (mf n) /h (m, n);

13、elsef1 (m, n) =g (mf n); endendendf1 = ifft2 (f1); f2=abs(f1):mm二max (max (f 2) ; mn=m i n (m i n (f 2); f2=255+255/(mm-mn)*(f2-mm);f2=uint8(f2); psnr1=psnr (f2r i);set(hand ies. text5r r str i ng',psnr1); axes (hand ies.axes2);imshow(f2)3. 维纳滤波的源代码及结果l = imread(' 10021033.bmp');f=fft2(l

14、);f=fftsh i ft(f):for m二-(size(f,1)+1)/2) : (size (f, 1)+1)/2for n=-s i ze (f, 2) /2: s i ze (f, 2) /2h(m+ (size (f, 1)+1) /2) +1, n+size (f, 2)/2+1) =5*sin (pi* (m+n) *exp (-sqrt (-1)*pi* (m+n) )/(pi* (m+n);endendfor m=1:s i ze(fr1)for n=1 : s i ze (f, 2)if (i snan (reai (h (m, n)g (m, n)二f (m, n);

15、h(m, n)=1 ;elseg (mr n) =f (mf n) *h (m, n); endendendfor i=1:s ize (f,1)for j=1 : s i ze (f,2)ff2(i, j)=g(i,j)/h(i,j)*(abs(h(i,j)广2)/(abs(h(l j)r2+10"-38);endendf3=ifft2 (ff2); f4二abs (f 3);mm1=max (max (f4);mn1二min(min(f4);f4=255+255/(mm1-mn1)*(f4-mm1); f4=u i nt8 (f 4); psnr2=psnr (f4r i);se

16、t (hand ies.text5, t str i ng,psnr2); axes (handles.axes2);imshow(f4)复原图实验像分割处理实验1. 实验目的(1) 了解图像分割的基本原理,并利用图像分割算法进行图像分割处理:(2) 掌握数学形态学的基本运算。2. 实验内容(1) 利用类间方差阈值算法实现图像的分割处理;(2) 利用形态学处理进行处理结果修正。3. 实验要求(1)实验用图如图4. 2所示;图4. 2原始图像(2) 对输入图像进行平滑处理,以减小噪声对分割处理的影响;(3) 利用类间方差阈值算法对滤波处理后图像进行分割处理,获取分割图像:(4) 利用数学形态学中

17、的腐蚀和膨胀运算处理,剔除分割处理结果中的一些细小的残余误 分割点,在进行腐蚀和膨胀运算时可采用半径为的圆形结构元素,注意比较选取不同值时的 处理结果。4. 实验结果实验源代码及结果tu2=i mread ( 图像 2013. bmp); tu2=rgb2gray (tu2); max2=0;min2=255;mt n二size (tu2); axes (hand ies.axesl); imshow (tu2); tu3二zeros (m,n);%平滑处理for k=2:m-1for s=2:n-1max4二max (tu2 (k-1,s),tu2 (k, s-1);max5=max(tu2

18、(k+1,s),tu2(k,s+1);min4二min (tu2 (k-1,s),tu2 (k, s-1);min5=min(tu2(k+1,s),tu2(k, s+1); tu2 (k, s) = (max (max4, max5) +m i n (m i n4, m i n5) /2;endendaxes (hand ies.axes2); imshow(tu2);%平滑处理中点滤波for k=1:mmax1=max(tu2(kr :);if (max 1255) max2=max1 ;break;endif (max2<max1) max2=max1;endend %找出最大灰度值

19、max2 for k=1:nmini = min (tu2(kr :); if (mini二二0) min2=minl;break; el seif (min2min1) min2二mini;endend %找出最小灰度值min2max2=double (max2);mi n2=doub ie(min2) ; % 数据类型转换!nizeros(1, max2-min2+1);for k二1:mfor s=1:ntemp=doubie(tu2(k, s)-min2+1; ni (1r temp) =ni (1r temp) +1 ;endend %统计各灰度值出现次数%找阈值wo=o;ut=o;

20、uo=o;max3=0;sum=m*n; for t二0:size(ni, 2)-1ut二ut+t*ni (t+1)/sum;endfor t=0:s i ze(ni f 2)-1 wo二wo+ni (t+1)/sum; w1二1-wo;uo=uo+t*ni (t+1)/sum; u1 = (ut-w0*u0)/w1 ; temp=w0*w1*(u1-u0)*(u1-u0); if (max3<temp)max3=temp; tmax=t;endendfor k=1:mfor s=1:nif (tu2 (k, s):tmax) tu3 (k, s)=255;endendendaxes (

21、hand i es. axes3); imshow(tu3);%类间方差阈值分割%腐蚀和膨胀se=strel ( d i sk* , 2);tu4=imerode(tu3f se); axes (hand ies.axes4); imshow(tu4); tu4= imd i i ate (tu4r se);axes (hand ies.axes5); imshow(tu4);实验四图像分割处理933中值对攻后田黴珀值分9!s釁实验五用hough变换进行曲线的参数提取1. 实验目的(1) 了解边缘检测算子的原理,并利用边缘算子对图像进行检测;(2) 掌握hough变换的基本原理。2. 实验内容

22、(1) 分别将原始图像及加高斯噪声、椒盐噪声后的图像中圆形边缘检测出来:(2) 用hough变换对边缘进行参数提取。3. 实验要求(1) 实验用图像文件:原始图像(houghorg. bmp)、加高斯噪声后图像(houghgau. bmp) 和加椒盐噪声后图像(houghsalt.bmp);图4. 3原始图像(2) 在含有噪声的背景下,先对图像中值滤波,再进行边缘检测;(3) 将目标的边界提取出来。边缘检测算子可利用matlab自带函数实现,使用robert、sobe i 和 lap i ac i an 算子;(4) 利用hough变换提取的参数绘制曲线,并叠加在噪声图像上。4. 实验要点(1

23、) 利用算子进行边缘检测:可先将加噪以后的图像进行平滑滤波,如采用9*9的掩膜模 板进行中值滤波;为了对图像中图形边缘进行线性提取,可通过设置阈值将图像变为二值图像, 再利用三种不同的算子(robert、sobel和laplacian)来完成边缘的检测;(2) hough变换进行曲线参数提取:在使用三种算子对加噪后图像进行边缘检测以后,使 用hough变换对检测后图像进行参数提取,并在提取成功以后,使用提取获得的参数进行图像的 重建,最后将重建图像叠加到加噪图像中。注意在进行hough变换时,对比观察获得图像与使用 算子进行边缘检测获得图像之间的区别。5.实验结果 1.原图利用robert算子

24、进行边缘检测l = i mread ( houghorg. bmp); i二rgb2gray(i);bw二edge(i, robertsf);axes (handles.axesl); imshow(bw)利用sobel算子进行边缘检测l = imread ( houghorg. bmp); i=rgb2gray(i);bw=edge(l, sobel); axes (hand ies.axesl);imshow (bw)利用laplacian算子进行边缘检测 i = i mread (t houghorg. bmp); i=rgb2gray(i);bw 二 edge (i, log); ax

25、es (handles.axesl);imshow (bw)hough变换i = i mread (' houghorg. bmp');i二rgb2gray(l);bw二edge(l,| sobel); r max=100;麵一酽r_min二40; step_r=1; step_angle=pi/20; p:o. 5;m, n = size (bw);size r 二 round (r maxr min)/step r)+1; size_angle = round (2*p i/step_angie); hough_space 二 zeros (m, nt s i ze_r);

26、rows, cols = find(bw);ecount = size (rows);% hough变换%将图像空间(x, y)对应到参数空间(a, b, r)% a = x-r*cos(angle)% b = y-r*s i n (ang i e) for i=1:ecountfor r=1:s i ze_rfor k=1:size_anglea 二 round(rows(i) -(r_mi n+(r-1)*step_r)*cos (k*step_angie); b = round (co is (i)-(r_min+(r-1)*step_r)*sin(k*step_angie); i f(

27、a>0&a<=m&b>0&b<=n)hough space (a, b, r) = hough space (a, b, r)+1 ;endendendend%搜索超过阈值的聚集点max_para = max (max (max(hough_space);index = find (hough_space>=max_para*p);length = size (index);hough_c i rc i e 二 false(m,n);for i二1:ecountfor k=1:lengthpar3 = floor (index (k)/(m*n) )+1;par2 = floor (index (k) -(par3-1 )*(m*n)/m)+1 ;par 1 二 index(k)一(par3-1)*(m*n) (par2-1)*m;if (rows (i)-par 1)"2+ (cols (i)-par2)"

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论