数字图像处理课程设计实验报告

时间:2024.4.29

江南大学

《数字图像处理技术》课程设计报告

设计题目:   数字图像处理系统    

班   级:     数字媒体         

姓   名:                         

     学   号:                        

     指导老师:                       

     日   期        2013.7.2         


一、课程设计目的要求:

1、提高分析图像处理问题的能力,进一步巩固在《数字图像处理技术》课程中所学的基本原理与方法。

2、掌握并使用一门计算机语言,进行数字图像处理的应用设计。

二、设计的内容:

    根据本次课设完成的系统的主要功能如下:利用matlab的GUI程序设计一个简单的图像处理程序,含有如下基本功能:

1、图像的读取、存储、剪切和粘贴

2、图像转化为灰度图像

3、图像大小的计算   

4、直方图均衡化规定化的计算

5、图像求反、动态压缩  

6、直接灰度调整

7、空域滤波(均值、中值、对比度增强滤波)

8、非线性锐化滤波(log滤波、prewitt滤波、sobel卷积、sobel滤波)

9、频域增强(高通、低通滤波)

三、总体方案设计:

(1)、软件的总体设计界面布局如下图:

系统的总体设计界面主要分为2个区域:显示区域和操作区域。

显示区域:在原始图像的基础上显示效果图。

操作区域:通过功能菜单实现图像的各种处理。

设计完成后运行的软件界面如下:

(2)、功能模块的划分:

   1、图像的读取、存储、退出

   2、编辑(还原、剪切、粘贴)

   3、图像(图像大小的计算、旋转、直方图均衡化规定化的计算、图像求反、动态压缩)  

   4、滤波(直接灰度调整、空域滤波、非线性锐化滤波、频域增强)

(3)、系统运行环境:

     Windows 7 or SP1、Windows Vista SP2、Windows XP SP3、Windows XP x64 Edition SP2、Windows Server 20## SP2 or R2、Windows Server 20## R2 ,CPU要求:X86架构且支持SSE2指令集,硬盘空间:典型安装需要3-4G,内存:最低1G,推荐2G。

(4)、选用的工具:matlab7.0,win7X64

(5)、主要实现功能的原理:

    直方图均衡化方法的基本思想是,对在图像中像素个数多的灰度级进行展宽,而对像素个数少的灰度级进行缩减。从而达到清晰图像的目的。空域是指图像平面本身,空域滤波这类方法直接对图像的像素进行处理。采用低通滤波(即只让低频信号通过)法,可去掉图中的噪声;采用高通滤波法,则可增强边缘等高频信号,使模糊的图片变得清晰。

四、各个功能模块的主要实现程序:

各个功能模块的具体实现,主要步骤实现的效果图如下:        

1、图像另存为:

function tp_saveAs_Callback(hObject, eventdata, handles)

global tpdata tp;

[FileName,PathName]=uiputfile({'*.jpg;*.tif;*.png;*.gif';'*.*';'All Files' },'保存图像',tp);

      if FileName==0

           return;

      else

          tp=[PathName,FileName];

          imwrite(tpdata,tp);

      End

2、灰度调整:

function tp_filter_grayhound_Callback(hObject, eventdata, handles)

global tpdata;

I=tpdata;

prompt={'请输入两个0—1之间的数'};  

     dlgtitle = '输入';

     num_lines = 1;

     def = { '0.3  0.7'};

     answer = inputdlg(prompt,dlgtitle,num_lines,def);

     answer =char(answer);

     answer=str2num(answer);

     if (answer(1)>0&answer(1)<1)&(answer(2)>0&answer(2)<1)

          tpdata=imadjust(I,[answer(1) answer(2)],[]);

          imshow(tpdata)

     else

         warndlg('输入错误!!!');

     End

3、计算图像大小:

function tp_size_Callback(hObject, eventdata, handles)

global tpdata;

[x,y]=size(tpdata);

msgbox(  num2str([ x              y  ])    ,' 图片大小  ');

4、菜单中图片旋转:

function tp_rotate_Callback(hObject, eventdata, handles)

global tpdata;

prompt={'+:为逆时针  -:为顺时针'};  

       dlgtitle = '输入角度';

     num_lines = 1;

     def = { '90'};

     answer = inputdlg(prompt,dlgtitle,num_lines,def);

     answer =char(answer);

     answer=str2num(answer);

     if answer>-360&answer<360

         tpdata=imrotate(tpdata,answer,'bicubic');

         imshow(tpdata);

     End

直方图计算:

function tp_squarejs_Callback(hObject, eventdata, handles)

global tpdata;

 imhist(tpdata,64);

5、直方图均值计算:

function tp_squareMeanjs_Callback(hObject, eventdata, handles)

global tpdata;

I=tpdata;[m,n]=size(I);                                 GP=zeros(1,256);                                   

    for k=0:255

        GP(k+1)=length(find(I==k))/(m*n);               

    end

    S1=zeros(1,256);

    for i=1:256

       for j=1:i

         S1(i)=GP(j)+S1(i);                %计算Sk

       end

     end 

   S2=round(S1*256);    %将Sk归到相近级的灰度

   for i=1:256

    GPeq(i)=sum(GP(find(S2==i))); %计算现有每个灰度级出现的概率                   

   end

PA=I;

   for i=0:255

  PA(find(I==i))=S2(i+1);%将各个像素归一化后的灰度值赋给这个像素

   end

   imshow(PA)  %显示均衡化后的图像   tadata=(PA);

figure('NumberTitle','off','Name','直方图'), %显示均衡化后的直方图

   bar(0:255,GPeq,'b')                                                       

   title('Averaging picture')

xlabel('graydegree')ylabel('probability')

6、直方图规定化计算:

function tp_squareOrdainjs_Callback(hObject, eventdata, handles)

global tpdata;

tpdata=histeq(tpdata);

imshow(tpdata);

figure('NumberTitle','off','Name','直方图规定化') ,imhist(tpdata,64);

7、图片求反:

function tp_reverse_Callback(hObject, eventdata, handles)

global tpdata;

X1=tpdata;

f1=200;

g1=256;

k=g1/f1;

[m,n]=size(X1);

X2=double(X1);

for i=1:m

   for j=1:n

     f=X2(i,j);

     g(i,j)=0;

     if  (f>=0)&(f<=f1)

     g(i,j)=g1-k*f;

     else

     g(i,j)=0;

     end

   end

end

imshow(mat2gray(g))

tpdata=mat2gray(g);

8、动态压缩:

function tp_compress_Callback(hObject, eventdata, handles)

global tpdata;

X1=tpdata;

c=255/log(256);

x=0:1:255;

y=c*log(1+x);

[m,n]=size(X1);

X2=double(X1);

for i=1:m

  for j=1:n

    g(i,j)=c*log(X2(i,j)+1);

  end

end

imshow(mat2gray(g))

tpdata=mat2gray(g);

9、均值滤波:

function tp_meanfilte_Callback(hObject, eventdata, handles)

global tpdata;

I=tpdata;

J=imnoise(I,'salt & pepper',0.02);

tpdata=filter2(fspecial('average',3),J)/255;

imshow(tpdata)

10、高通滤波:

function tp_highfilite_Callback(hObject, eventdata, handles)

global tpdata;

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);

for i=1:N1

  for j=1:N2

    d=sqrt((i-n1)^2+(j-n2)^2);

    if d==0;

       h=0;

    else

       h=1/(1+(d0/d)^(2*n));

    end

    result(i,j)=h*g(i,j);

   end

end

result=ifftshift(result);

X2=ifft2(result);

tpdata=uint8(real(X2));

imshow(tpdata)

11、低通滤波:

function tp_lowfilite_Callback(hObject, eventdata, handles)

global tpdata;

I1=tpdata;

f=double(I1);

g=fft2(f);

g=fftshift(g);

[N1,N2]=size(g);

n=2;

d0=50;

n1=fix(N1/2);

n2=fix(N2/2);

for i=1:N1

  for j=1:N2

    d=sqrt((i-n1)^2+(j-n2)^2);

    h=1/(1+0.414*(d/d0)^(2*n));

    result(i,j)=h*g(i,j);

   end

end

result=ifftshift(result);

X2=ifft2(result);

tpdata=uint8(real(X2));

imshow(tpdata)

12、中值滤波:

function tp_medieafilite_Callback(hObject, eventdata, handles)

global tpdata;

I=tpdata;

J=imnoise(I,'salt & pepper',0.08);

domain=[0 0 1 0 0;

        0 0 1 0 0;

        1 1 1 1 1;

        0 0 1 0 0;

        0 0 1 0 0];

tpdata=ordfilt2(J,5,domain);

imshow(tpdata);

13、对比度增强滤波:

function tp_contraststrongfilite_Callback(hObject, eventdata, handles)

global tpdata;

I=tpdata;

prompt={'输入一个0-1之间的数'};   dlgtitle = '输入数字';

     num_lines = 1;

     def = { '0.8'};

     answer = inputdlg(prompt,dlgtitle,num_lines,def);

     answer =char(answer);

     answer=str2num(answer);

     if answer>0&answer<1

          h=fspecial('unsharp',answer);

          tpdata=filter2(h,I)/255;

          imshow(tpdata)

     Else        warndlg('输入错误!!!');

     End

14、log滤波:

function tp_log_Callback(hObject, eventdata, handles)

global tpdata;

I1=tpdata;

h1=fspecial('sobel');

h3=fspecial('log');

tpdata=filter2(h3,I1);

imshow(tpdata);

title('log 滤波');

15、prewitt滤波:

function tp_prewitt_Callback(hObject, eventdata, handles)

global tpdata;

I1=tpdata;

h1=fspecial('sobel');

h2=fspecial('prewitt');

tpdata=conv2(h2,I1);

imshow(tpdata);

title('prewitt 滤波');

16、Sobel卷积滤波:

function tp_sobel_Callback(hObject, eventdata, handles)

global tpdata;

I1=tpdata;

h1=fspecial('sobel');

tpdata=filter2(h1,I1);

imshow(tpdata);

title('sobel 卷积');

I3=conv2(I1,h1);

17、sobel滤波:

function tp_sobellb_Callback(hObject, eventdata, handles)

global tpdata;

I1=tpdata;

h1=fspecial('sobel');

tpdata=conv2(I1,h1);

imshow(tpdata);

title('sobel 滤波');

五、课程设计总结与体会:

本次课程设计,我做的内容主要是根据我们课堂上所学的数字图像处理的一些基本功能函数,实现了直方图的计算(均衡化,规定化),图像求反,动态压缩,以及滤波(空域、非线性锐化、频域增强)功能。但是本次课设还有需要改进的地方,代码中没有将彩色图像分成RGB三张图,分别进行滤波,而是采用了转化为灰度图像进行滤波。通过本次的课程设计,把课堂上的所学运用到图像处理的系统中,加深了对数字图像处理这门课程的理解。在完成作业的过程中,也遇到好多问题,不断的在网上查阅资料,翻阅书本,当然啦,最方便的就是请教同学,最终完成了此次课设。虽然做的比较粗糙,但是还是在过程中学到了好多,理论和实践结合起来才是最重要的。

更多相关推荐:
数字图像处理课程设计报告

课程设计报告书课程名称题目学生姓名专业班别学号指导老师日期年月日数字图像处理的傅里叶变换1课程设计目的和意义1了解图像变换的意义和手段2熟悉傅里叶变换的基本性质3热练掌握FFT的方法反应用4通过本实验掌握利用M...

《数字图像处理》课程设计报告

数字图像处理课程设计报告1课程设计目的1提高分析问题解决问题的能力进一步巩固数字图像处理系统中的基本原理与方法2熟悉掌握一门计算机语言可以进行数字图像的应用处理的开发设计2课程设计内容及实现21二维快速傅立叶变...

数字图像处理课程设计报告

数字图像处理课程设计报告课设题目运动目标的跟踪学院信息科学与工程学院专业电子与信息工程班级0902501班姓名学号指导教师赵占锋周志权于海雁哈尔滨工业大学威海20xx年11月12日目录一课程设计任务1二课程设计...

20xx年---数字图像处理课程设计

数字图像处理课程设计1课程设计目的1提高分析问题解决问题的能力进一步巩固数字图像处理系统中的基本原理与方法2熟悉掌握一门计算机语言可以进行数字图像的应用处理的开发设计2课程设计选题21课程设计选题一简单图像处理...

20xx数字图像处理课程设计报告

数字图像处理课程设计报告课设题目学院专业班级姓名学号指导教师彩色图像增强软件信息科学与工程学院电子与信息工程1002501曾小路100250131赵占峰哈尔滨工业大学威海20xx年12月27日目录目录I一课程设...

数字图像处理课程设计报告模板_20xx

数字图像处理课程设计报告姓名学号班级设计题目教师提交日期20xx7750215net2班指纹识别设计赵哲老师12月25日1一设计内容主题指纹识别设计详细说明读入指纹图片通过二值图变换开运算闭运算以及贴标签等方法...

数字图像处理课程设计报告(冈萨雷斯版)

数字图像处理课程设计报告1课程设计目的1提高分析问题解决问题的能力进一步巩固数字图像处理系统中的基本原理与方法2熟悉掌握一门计算机语言可以进行数字图像的应用处理的开发设计2课程设计内容及实现21网页安全色Web...

数字图像处理课程设计

沈阳理工大学数字图像处理课程设计报告装订顺序封皮成绩评定表任务书正文沈阳理工大学数字图像处理课程设计20xx20xx第2学期理学院实践教学成绩评定表沈阳理工大学数字图像处理课程设计任务书沈阳理工大学数字图像处理...

数字图像处理课程设计报告王芳

长沙学院数字图像处理课程设计说明书题系部目字符识别系统设计电子与通信工程系专业班级姓学指起09电子信息2班刘育雄20xx044238名号导止教日师刘莉周远谭志光黄利元期121210121214长沙学院课程设计鉴...

DSP数字图像处理系统设计

华东交通大学理工学院课程设计报告书所属课程名称DSP原理及应用题目:数字图像处理系统设计分院:电信分院专业班级:09通信工程(2)班学号学生姓名指导教师20XX年6月18日课程设计(论文)任务书一、课程设计(论…

数字图像处理课程设计

数字图像处理课程设计目录1课设目的12背景与基本原理121背景122基本原理1221基本概念1222基本策略2223边缘检测3224导数和噪声4225高斯拉普拉斯LOG4226边缘连接和边缘检测43源代码531...

数字图像处理课程设计

江苏大学数字图像处理数字图像处理课程设计报告题目图像OTSU阈值分割的程序设计姓名杨德凯班级软件1101学号3110608021指导老师刘哲完成时间20xx年6月1日I江苏大学数字图像处理完成时间20xx年6月...

数字图像处理课程设计报告(37篇)