数字图像处理课程设计实验报告Word文档格式.docx
- 文档编号:21249804
- 上传时间:2023-01-28
- 格式:DOCX
- 页数:16
- 大小:1.18MB
数字图像处理课程设计实验报告Word文档格式.docx
《数字图像处理课程设计实验报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《数字图像处理课程设计实验报告Word文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
三、总体方案设计:
(1)、软件的总体设计界面布局如下图:
系统的总体设计界面主要分为2个区域:
显示区域和操作区域。
显示区域:
在原始图像的基础上显示效果图。
操作区域:
通过功能菜单实现图像的各种处理。
设计完成后运行的软件界面如下:
(2)、功能模块的划分:
1、图像的读取、存储、退出
2、编辑(还原、剪切、粘贴)
3、图像(图像大小的计算、旋转、直方图均衡化规定化的计算、图像求反、动态压缩)
4、滤波(直接灰度调整、空域滤波、非线性锐化滤波、频域增强)
(3)、系统运行环境:
Windows7orSP1、WindowsVistaSP2、WindowsXPSP3、WindowsXPx64EditionSP2、WindowsServer2008SP2orR2、WindowsServer2003R2,CPU要求:
X86架构且支持SSE2指令集,硬盘空间:
典型安装需要3-4G,内存:
最低1G,推荐2G。
(4)、选用的工具:
matlab7.0,win7X64
(5)、主要实现功能的原理:
直方图均衡化方法的基本思想是,对在图像中像素个数多的灰度级进行展宽,而对像素个数少的灰度级进行缩减。
从而达到清晰图像的目的。
空域是指图像平面本身,空域滤波这类方法直接对图像的像素进行处理。
采用低通滤波(即只让低频信号通过)法,可去掉图中的噪声;
采用高通滤波法,则可增强边缘等高频信号,使模糊的图片变得清晰。
四、各个功能模块的主要实现程序:
各个功能模块的具体实现,主要步骤实现的效果图如下:
1、图像另存为:
functiontp_saveAs_Callback(hObject,eventdata,handles)
globaltpdatatp;
[FileName,PathName]=uiputfile({'
*.jpg;
*.tif;
*.png;
*.gif'
;
'
*.*'
AllFiles'
},'
保存图像'
tp);
ifFileName==0
return;
else
tp=[PathName,FileName];
imwrite(tpdata,tp);
End
2、灰度调整:
functiontp_filter_grayhound_Callback(hObject,eventdata,handles)
globaltpdata;
I=tpdata;
prompt={'
请输入两个0—1之间的数'
};
dlgtitle='
输入'
num_lines=1;
def={'
0.30.7'
answer=inputdlg(prompt,dlgtitle,num_lines,def);
answer=char(answer);
answer=str2num(answer);
if(answer
(1)>
0&
answer
(1)<
1)&
(answer
(2)>
answer
(2)<
1)
tpdata=imadjust(I,[answer
(1)answer
(2)],[]);
imshow(tpdata)
warndlg('
输入错误'
);
3、计算图像大小:
functiontp_size_Callback(hObject,eventdata,handles)
[x,y]=size(tpdata);
msgbox(num2str([xy]),'
图片大小'
4、菜单中图片旋转:
functiontp_rotate_Callback(hObject,eventdata,handles)
+:
为逆时针-:
为顺时针'
输入角度'
90'
ifanswer>
-360&
answer<
360
tpdata=imrotate(tpdata,answer,'
bicubic'
imshow(tpdata);
直方图计算:
functiontp_squarejs_Callback(hObject,eventdata,handles)
imhist(tpdata,64);
5、直方图均值计算:
functiontp_squareMeanjs_Callback(hObject,eventdata,handles)
[m,n]=size(I);
GP=zeros(1,256);
fork=0:
255
GP(k+1)=length(find(I==k))/(m*n);
end
S1=zeros(1,256);
fori=1:
256
forj=1:
i
S1(i)=GP(j)+S1(i);
%计算Sk
end
end
S2=round(S1*256);
%将Sk归到相近级的灰度
GPeq(i)=sum(GP(find(S2==i)));
%计算现有每个灰度级出现的概率
PA=I;
fori=0:
255
PA(find(I==i))=S2(i+1);
%将各个像素归一化后的灰度值赋给这个像素
imshow(PA)%显示均衡化后的图像tadata=(PA);
figure('
NumberTitle'
'
off'
Name'
直方图'
),%显示均衡化后的直方图
bar(0:
255,GPeq,'
b'
)
title('
Averagingpicture'
)
xlabel('
graydegree'
)ylabel('
probability'
6、直方图规定化计算:
functiontp_squareOrdainjs_Callback(hObject,eventdata,handles)
tpdata=histeq(tpdata);
imshow(tpdata);
直方图规定化'
),imhist(tpdata,64);
7、图片求反:
functiontp_reverse_Callback(hObject,eventdata,handles)
X1=tpdata;
f1=200;
g1=256;
k=g1/f1;
[m,n]=size(X1);
X2=double(X1);
fori=1:
m
n
f=X2(i,j);
g(i,j)=0;
if(f>
=0)&
(f<
=f1)
g(i,j)=g1-k*f;
end
imshow(mat2gray(g))
tpdata=mat2gray(g);
8、动态压缩:
functiontp_compress_Callback(hObject,eventdata,handles)
c=255/log(256);
x=0:
1:
255;
y=c*log(1+x);
g(i,j)=c*log(X2(i,j)+1);
9、均值滤波:
functiontp_meanfilte_Callback(hObject,eventdata,handles)
J=imnoise(I,'
salt&
pepper'
0.02);
tpdata=filter2(fspecial('
average'
3),J)/255;
imshow(tpdata)
10、高通滤波:
functiontp_highfilite_Callback(hObject,eventdata,handles)
I1=tpdata;
f=double(I1);
g=fft2(f);
g=fftshift(g);
[N1,N2]=size(g);
n=2;
d0=5;
n1=fix(N1/2);
n2=fix(N2/2);
N1
N2
d=sqrt((i-n1)^2+(j-n2)^2);
ifd==0;
h=0;
h=1/(1+(d0/d)^(2*n));
result(i,j)=h*g(i,j);
result=ifftshift(result);
X2=ifft2(result);
tpdata=uint8(real(X2));
11、低通滤波:
functiontp_lowfilite_Callback(hObject,eventdata,handles)
d0=50;
h=1/(1+0.414*(d/d0)^(2*n));
12、中值滤波:
functiontp_medieafilite_Callback(hObject,eventdata,handles)
0.08);
domain=[00100;
00100;
11111;
00100];
tpdata=ordfilt2(J,5,domain);
13、对比度增强滤波:
functiontp_contraststrongfilite_Callback(hObject,eventdata,handles)
输入一个0-1之间的数'
输入数字'
0.8'
1
h=fspecial('
unsharp'
answer);
tpdata=filter2(h,I)/255;
Elsewarndlg('
14、log滤波:
functiontp_log_Callback(hObject,eventdata,handles)
h1=fspecial('
sobel'
h3=fspecial('
log'
tpdata=filter2(h3,I1);
title('
log滤波'
15、prewitt滤波:
functiontp_prewitt_Callback(hObject,eventdata,handles)
h2=fspecial('
prewitt'
tpdata=conv2(h2,I1);
prewitt滤波'
16、Sobel卷积滤波:
functiontp_sobel_Callback(hObject,eventdata,handles)
tpdata=filter2(h1,I1);
sobel卷积'
I3=conv2(I1,h1);
17、sobel滤波:
functiontp_sobellb_Callback(hObject,eventdata,handles)
tpdata=conv2(I1,h1);
sobel滤波'
五、课程设计总结与体会:
本次课程设计,我做的内容主要是根据我们课堂上所学的数字图像处理的一些基本功能函数,实现了直方图的计算(均衡化,规定化),图像求反,动态压缩,以及滤波(空域、非线性锐化、频域增强)功能。
但是本次课设还有需要改进的地方,代码中没有将彩色图像分成RGB三张图,分别进行滤波,而是采用了转化为灰度图像进行滤波。
通过本次的课程设计,把课堂上的所学运用到图像处理的系统中,加深了对数字图像处理这门课程的理解。
在完成作业的过程中,也遇到好多问题,不断的在网上查阅资料,翻阅书本,当然啦,最方便的就是请教同学,最终完成了此次课设。
虽然做的比较粗糙,但是还是在过程中学到了好多,理论和实践结合起来才是最重要的。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字图像 处理 课程设计 实验 报告