图像处理课程设计(20页).doc
-图像处理技术应用实践课程设计题 目 图像增强算法综合应用 学生姓名 韩帅_ 学 号 20151308088_ 院 系 计算机与软件学院 专 业 计算机科学与技术 任课教师 范 春 年_ 二一七年五月图像处理技术应用实践课程设计21、设计内容图像增强处理:设计一套空间域与频率域结合的图像增强算法,处理以下任一组图片中的带噪声图像,去除噪声,提高图像质量。(1)已知:噪声为随机噪声和周期噪声混合噪声;(2)要求:a)去噪处理后,计算均方误差评估去噪处理后图像的去噪效果b)撰写完整的科技报告(形式类似科技论文)表述自己的算法设计,算法实现与算法评估过程。第一组图片:第二组图片:2、 图像增强算法2.1问题分析 (1)图片中加入了随机噪声和周期噪声混合噪声。针对不同的噪声,不同的去噪方法效果不同,因此应该采用不同的去噪方法以达到最好的去噪效果。 (2)随机噪声应在空间域去除,而空域去噪方法中,中值滤波法效果最好。 (3)周期噪声应在频域中消去。 (4)去除噪声后的图像仍然可以改善处理。 (5)均方误差评估去噪处理后图像的去噪效果。2.2算法设计 (1)读入初始图片及加噪图片。 clc; clear; f=imread(); g=imread(); (2) 利用空域滤波,去除随机噪声,此时用中值滤波法,并显示它的频谱图和直方图。 g=medfilt2(g,3,3);(3)利用频域滤波,去除周期噪声。先转化成double型,进行傅里叶变换,再转化成数据矩阵,最后利用低通滤波去除周期噪声。G=double(g); %转化doubleG=fft2(G);G=fftshift(G);M,N=size(G); nn=2;d0=25; m =fix(m/2); n =fix(n/2);for i = 1 : M for j = 1 : N d = sqrt(i-m)2+(j-n)2); h = 1/(1+0.414*(d/d0)(2*nn); % 计算低通滤波器传递函数 result(i,j) = h * G(i,j); end end(4)计算均方误差评估去噪效果。 m n=size(p); l=f-p; he=sum(sum(l); avg=he/(m*n); k=l-avg; result1=(sum(sum(k.2)/(m*n); if result1=0 disp('dog图均方误差'); result2=0 else disp('dog图均方误差'); result2=sqrt(result1) end3、 算法实现clear;clc;f=imread('C:dogOriginal.bmp');g=imread('C:dogDistorted.bmp'); f1=double(f);f2=fft2(f1);f2=fftshift(f2); g1=double(g);g2=fft2(g1);g2=fftshift(g2); g3=medfilt2(g,3,3); %3*3模板中值滤波去除随机噪声 g4=double(g3);F1=fft2(g3);F1=fftshift(F1); G=F1;M,N=size(G); %低通滤波nn=2;d0=25;m=fix(M/2);n=fix(N/2);for i=1:M for j=1:N d=sqrt(i-m)2+(j-n)2); h=1/(1+0.414*(d/d0)(2*nn); %h=1/(1+(d/d0)(2*nn); %备用 G(i,j)=h*G(i,j); endendp=uint8(real(ifft2(ifftshift(G); subplot(341);imshow(f),title('原图');subplot(345);imshow(log(abs(f2),),title('频谱');subplot(349);imhist(f),title('原图'); subplot(342);imshow(g),title('噪声');subplot(346);imshow(log(abs(g2),),title(' ');subplot(3,4,10);imhist(g),title('噪声'); subplot(343);imshow(g3),title('去随机噪声');subplot(347);imshow(log(abs(F1),),title(' ');subplot(3,4,11);imhist(g3),title('去随机噪声'); subplot(344);imshow(p,),title('去噪');subplot(348);imshow(log(abs(G),),title(' ');subplot(3,4,12);imhist(p),title('去噪'); m,n=size(p);l=f-p;he=sum(sum(l);avg=he/(m*n);k=l-avg;result1=(sum(sum(k.2)/(m*n);if result1=0disp('dog图均方误差'),result2=0elsedisp('dog图均方误差'),result2=sqrt(result1)end4、 运行结果5、 认识分析去噪后图像模糊,同时尝试了直方图均衡化,效果并不理想;d0根据误差调整方便简单;中值滤波简单好用参考文献: 1全红艳、曹桂涛,数字图像处理原理与实现方法,机械工业出版社,20132胡晓军、徐飞,MATLAB应用图像处理,2010图像处理技术应用实践课程设计31、设计内容图像增强分割:有一幅包含不同大小的种子图案的扫描图像(如下图所示),每个包含了种子的图像区域称之为感兴趣区域(regions of interest ROI)。要求:1、设计一套算法提取源图像中的所有ROI,并计算每一个ROI的大小(大小为包含多少个像素,如包含20个像素,则大小为20)。提示:每一个ROI为一个连通集合。2、撰写完整的科技报告(形式类似科技论文)表述自己的算法设计,算法实现与计算结果。2、 增强分割算法2.1问题分析(1)首先题目所给的图为彩色图,应该先将其转化成灰度图,再对其进行处理;(2)分析题目可知首先要将种子所覆盖的大概区域求出来,可以将种子存在的地方检测出来并用特定灰度标记,方便之后统计像素数;(3)要检测位置在灰度图中很难实现,可以将图像二值化,在二值化图像中值为0的地方进行标记。2.2算法设计(1)读图并灰度和二值化:clear;clc;I=imread('D:seed.bmp');f=rgb2gray(I);j=im2bw(f);j2=f;(2) 检测ROI位置并标记:首先建立一个白板:M,N=size(j2);for x=1:M for y=1:N j2(x,y)=255; endend之后开始标记ROI位置,以第一行第一个为例:for x=40:70 %1 for y=100:150 if(j(x,y)=0) j2(x,y)=1; end endend这里的40,70可以先将二值图像和其坐标轴显示出来,记录ROI所在的大概位置;第一个用1标记;%坐标轴显示可以用axis on指令按此方法,可以实现37个ROI的标记,用137灰度分别标记。(3) 统计像素数:A=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37;C=hist(A(:),unique(A);for x=1:M for y=1:N for i=1:37 if j2(x,y)=A(i) C(i)=C(i)+1; end end endEndC数组即储存A中像素个数 (4)最后显示各个图像和最后像素数的数组figure(1);imshow(j2,);figure(2);Imshow(j);axis on;C2.3算法实现clear;clc;I=imread('D:seed.bmp');f=rgb2gray(I);j=im2bw(f);k=f;axis on;M,N=size(k);for x=1:M for y=1:N k(x,y)=255; endend-第 19 页-%第一行for x=40:70 for y=100:150 if(j(x,y)=0) k(x,y)=1; end endend%第二行for x=80:110 for y=100:160 if(j(x,y)=0) k(x,y)=2; end end for y=180:230 if(j(x,y)=0) k(x,y)=3; end end for y=240:300 if(j(x,y)=0) k(x,y)=4; end endendfor x=120:155 for y=100:160 if(j(x,y)=0) k(x,y)=5; end end for y=180:230 if(j(x,y)=0) k(x,y)=6; end end for y=240:300 if(j(x,y)=0) k(x,y)=7; end endendfor x=160:200 for y=100:160 if(j(x,y)=0) k(x,y)=8; end end for y=180:230 if(j(x,y)=0) k(x,y)=9; end end for y=240:300 if(j(x,y)=0) k(x,y)=10; end end for y=310:375 if(j(x,y)=0) k(x,y)=11; end endendfor x=205:240 for y=100:160 if(j(x,y)=0) k(x,y)=12; end end for y=180:230 if(j(x,y)=0) k(x,y)=13; end end for y=240:300 if(j(x,y)=0) k(x,y)=14; end end for y=310:375 if(j(x,y)=0) k(x,y)=15; end endendfor x=250:285 for y=100:160 if(j(x,y)=0) k(x,y)=16; end end for y=180:230 if(j(x,y)=0) k(x,y)=17; end end for y=240:300 if(j(x,y)=0) k(x,y)=18; end end for y=310:375 if(j(x,y)=0) k(x,y)=19; end endendfor x=290:328 for y=100:160 if(j(x,y)=0) k(x,y)=20; end end for y=180:230 if(j(x,y)=0) k(x,y)=21; end end for y=240:300 if(j(x,y)=0) k(x,y)=22; end end for y=310:375 if(j(x,y)=0) k(x,y)=23; end endendfor x=335:370 for y=100:160 if(j(x,y)=0) k(x,y)=24; end end for y=180:230 if(j(x,y)=0) k(x,y)=25; end end for y=240:300 if(j(x,y)=0) k(x,y)=26; end end for y=310:375 if(j(x,y)=0) k(x,y)=27; end endendfor x=375:415 for y=100:160 if(j(x,y)=0) k(x,y)=28; end end for y=180:230 if(j(x,y)=0) k(x,y)=29; end end for y=240:300 if(j(x,y)=0) k(x,y)=30; end end for y=310:375 if(j(x,y)=0) k(x,y)=31; end end for y=400:440 if(j(x,y)=0) k(x,y)=32; end endendfor x=420:450 for y=100:160 if(j(x,y)=0) k(x,y)=33; end end for y=180:230 if(j(x,y)=0) k(x,y)=34; end end for y=240:300 if(j(x,y)=0) k(x,y)=35; end end for y=320:375 if(j(x,y)=0) k(x,y)=36; end end for y=400:440 if(j(x,y)=0) k(x,y)=37; end endendA=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37;C=hist(A(:),unique(A);for x=1:M for y=1:N for i=1:37 if k(x,y)=A(i) C(i)=C(i)+1; end end endendfigure(1);imshow(k,);figure(2);imshow(j);C灰度图像二值化图像(带坐标)标记ROI后的图像统计的像素数3、 认识分析 标记ROI位置的时候要尽量精确,否则会有几像素值的误差,甚至还会标记到不必要的地方;最后基本达到要求。参考文献: 1全红艳、曹桂涛,数字图像处理原理与实现方法,机械工业出版社,20132胡晓军、徐飞,MATLAB应用图像处理,2010