图像处理课程设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《图像处理技术应用实践》课程设计题目图像增强算法综合应用
学生姓名韩帅_______
学号
院系计算机与软件学院
专业计算机科学与技术
范春年____
噪声,不同的去噪方法效果不同,因此应该采用不同的去噪方法以达到最好的去噪效果。?
(2)随机噪声应在空间域去除,而空域去噪方法中,中值滤波法效果最好。?
(3)周期噪声应在频域中消去。?
(4)去除噪声后的图像仍然可以改善处理。?
(5)均方误差评估去噪处理后图像的去噪效果。
2.2算法设计?
(1)读入初始图片及加噪图片。?
clc;?clear;?
f=imread();?
? 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);?
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);
end
end
p=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);
要求:
1、设计一套算法提取源图像中的所有ROI,并计算每一个ROI 的大小(大小为包含多少个像素,如包含20个像素,则大小为20)。
提示:每一个ROI为一个连通集合。
2、撰写完整的科技报告(形式类似科技论文)表述自己的算法设计,算法实现与计算结果。
2、增强分割算法
2.1问题分析
(1)首先题目所给的图为彩色图,应该先将其转化成灰度图,再对其进行处理;
(2)分析题目可知首先要将种子所覆盖的大概区域求出来,可以将种子存在的地方检测出来并用特定灰度标记,方便之后统计像素数;
end
之后开始标记ROI位置,以第一行第一个为例:
for x=40:70 %1
for y=100:150
if(j(x,y)==0)
j2(x,y)=1;
end
end
end
这里的40,70可以先将二值图像和其坐标轴显示出来,记录ROI 所在的大概位置;第一个用1标记;%坐标轴显示可以用axis on指令
按此方法,可以实现37个ROI的标记,用1~37灰度分别标记。
(4)最后显示各个图像和最后像素数的数组
figure(1);
imshow(j2,[]);
figure(2);
Imshow(j);
axis on;
C
2.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
for y=240:300
if(j(x,y)==0)
k(x,y)=4;
end
end
end
for x=120:155
for y=100:160
if(j(x,y)==0)
k(x,y)=5;
end
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;
if(j(x,y)==0)
k(x,y)=15;
end
end
end
for x=250:285
for y=100:160
if(j(x,y)==0)
k(x,y)=16;
end
end