图像变换程序的设计说明.doc

上传人:可****阿 文档编号:42713170 上传时间:2022-09-16 格式:DOC 页数:26 大小:1.68MB
返回 下载 相关 举报
图像变换程序的设计说明.doc_第1页
第1页 / 共26页
图像变换程序的设计说明.doc_第2页
第2页 / 共26页
点击查看更多>>
资源描述

《图像变换程序的设计说明.doc》由会员分享,可在线阅读,更多相关《图像变换程序的设计说明.doc(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、*实践教学*理工大学计算机与通信学院2012年秋季学期图象处理综合训练题 目:图像变换程序设计 专业班级:姓 名:学 号:指导教师:成 绩:目录摘要3前言41. 算法分析与描述5 1.1 傅里叶变换.51.2小波多尺度和重构.62.详细设计.72.1算法分析和理论依据73.调试过程中出现的问题与相应解决办法84. 程序运行截图与其说明95. 简单操作手册146.设计总结18参考文献19致19附录20摘 要 图像变换,是指通过某种数学映射,将图像信号从空域变换到另外的域上进行分析的手段。在图像处理中主要用Matlab编写图像处理程序并调用Matlab图像处理的部分部函数进行处理。在编制好程序之后

2、,要对程序进行相应的调试,并且进行测试,以验证程序的正确性与可用性。调试与测试时,通过相关信息,充分验证程序的可用性。本程序通篇均用Matlab写成,具有很高的严密性,具有很高的真实性与可靠性,也充分验证了图像处理在生活中的普遍应用。 关键字:图像变换,傅立叶变换 ,Matlab前 言 图像处理,它是指将图像信号转换成数字信号并利用计算机对其进行处理的过程。 数字图像处理主要研究以下容:图像几何变换;如傅立叶变换、沃尔什变换、离散余弦变换等;图象锐化处理;图像编码压缩;图像增强和复原;图像分割;图像描述;图像分类(识别)。图像是人类获取和交换信息的主要来源,因此,图像处理的应用领域必然涉与到人

3、类生活和工作的方方面面。随着人类活动围的不断扩大,图像处理的应用领域也将随之不断扩大。图像所带给人们的直观信息的特点,使得图像处理技术随着计算机技术、多媒体技术的飞速发展取得了长足的进步。图像具有可反映人类第一感觉下的思维的魅力,这些年来,图像技术快速的向各个领域渗透。 图像变换程序要求学生在掌握计算机图象处理技术的基础知识、基本原理和方法的基础上,使用计算机图象处理方法完成图像分割程序设计。 通过该题目的分析和设计,使学生巩固计算机图象处理课程中所学到的相关知识、理论和方法。得到计算机图象处理应用的综合训练,全面培养图象处理程序开发过程中的分析、设计、编码、测试与文档规书写的能力,提高解决实

4、际问题的能力。1. 算法分析与描述1.1 傅立叶变换傅里叶变换是函数的一种正交变换,正交变换就是将一个函数分解成一组正交函数的线性组合。一个非周期信号可以理解成一个周期无限()长的一个周期信号,这是相邻谱线之间的间隔。同时,各频率分量的幅值也就趋于无穷小,为了描述频谱特性,引入频谱密度函数的概念。由于是一个无穷小量,所以取其为,是一个连续变换的量,得到傅里叶正、逆变换的计算公式如下:显然,对于一个非周期信号,其频谱为连续谱。根据以上公式,得到一维快速傅里叶变换(FFT)的变换公式:设为一维信号序列,令: ,则:把上式分成奇数项和偶数项,得:其中,1.2一维小波多尺度分解与重构的一维小波多尺度分

5、解与重构的MATLAB实现 :MATLAB 小波工具箱提供了以下几个实现一维小波分解和重构的函数3: C,L = WAVEDEC(X,N,wname),多尺度一维小波分解函数。其中C为分解结构变量,L为个分解结构以与原始信号长度变量,X为原始信号,N为分解层度,wname为小波类型。 X = WAVEREC(C,L,wname),多尺度一维小波重构函数。其中C,L为多尺度一维小波分解函数WAVEDEC的计算结果。 D = DETCOEF(C,L,N),一维小波变换细节序列提取函数。其中C,L为多尺度一维小波分解函数WAVEDEC的计算结果。wname为小波类型。 A = APPCOEF(C,L

6、,wname,N),一维小波变换近似序列提取函数。其中C,L为多尺度一维小波分解函数WAVEDEC的计算结果。 Y = WRCOEF(type,C,L,wname,N),一维小波系数单支重构函数。其中,当type = a时重构近似序列,当type = d时重构高频系数;C,L,wname,N含义同上。 Y = UPCOEF(type,S,wname,N),一维系数的直接小波重构函数。其中type,wname,N含义同上。S为小波分解系数变量2.详细设计2.1算法分析1、傅里叶算法理论依据设为连续时间信号,若满足则有 的傅里叶变换并且反变换为将写为复数形式且 当为离散情况时,一维离散傅里叶变换(

7、DFT)与反变换定义如下:以上公式由数学公式编译器编写。3.调试过程中出现的问题与相应解决办法程序调试是软件使用的一个重要环节,而在调试过程中可能会出现错误,这就需要对错误进行细致分析个修正:3.1程序错误分类: 程序错误分为三类 编译错误: 在编写程序时书写了错误的语法, 编译器无确解释源代码而产生的错误,也称为语法错误,产生编译错误提示对话框。 实时错误: 应用程序运行期间,一条语句试图执行一条不可能执行的操作而产生的错误,也称为运行时错误,产生实时错误提示对话框。 逻辑错误: 是指程序的运行结果和程序员的设想有出入时产生的错误。这类错误没有违背语法规则、运行时也没有执行非法语句,所以不出

8、现错误提示,很难发现。3.2具体错误与处理办法部分列举1在源码中遗失“;”。2.即缺少“using namespace std;”。3.调试器错误信息:例:error C2065: cout : undeclared identifier缺少命名空间使用定义例如cout/cin/endl/等在命名空间中定义的符号和标示符无法使用。4.变量未定义就直接使用。5.在程序中使用中文标示符,如将英文”;”错误输入成了”;”。6.在使用输入输出流的时候错误使用了标示符“”“”。3.3.常用的调试技巧 调试程序是一件复杂的工程,不但要求程序员对系统设计结果非常熟悉,思路清晰,更需要不断地在实践中积累经验。

9、以下技巧可供参考: 1事先做好备份:调试程序时,很容易意外地修改、覆盖或删除掉必要的代码部分,所以应先做好备份。 2分离受怀疑的程序:试着找到出错的代码段,将其复制到一个新的工程中,对新工程运行,检查错误,可以排除程序其它部分的干扰,提高调试效率。 3缩小搜索围:与第二种方法相近。4. 程序运行截图与其说明以www原图为例进行图像几何变换的处理,以下为www原图与处理后保存的图象。(1)未经任何处理的图象,如图4.1所示。图4.1 www原图(2)图象进行反傅里叶变换处理,如图4.2所示。图4.2 ww反傅里叶变换图(3)图象进行直接变换频谱处理,如图4.3所示。图4.3 www直接变换频谱图

10、(4) 图像进行小波多尺度和重构处理,如图4.4所示。 图4.4小波多尺度和重构( 傅立叶变换以后,时域与频域形成了对偶运算关系,因此可以通过傅立叶变换达到某些运算的简化。 5.简单操作手册一本系统实现图像的傅里叶变换步骤:1.进入操作界面图:图5.1操作界面图二 小波多尺度和重构进入操作图5.2操作界面 6.设计总结在这两周的图像处理的综合训练中,通过对图象变换的设计过程,我加深了对图像变换的理解,对傅立叶变换和小波多尺度和重构的实现有所掌握,对课本中所学的各种图像知识的进一步理解和掌握,学会了如何把学到的知识用于解决实际问题,锻炼了自己动手的能力。在这次的综合训练中我认识到了自己的不足。在

11、以后的学习中我会更加注意各个方面的能力的协调发展。在课程设计时遇到了很多的问题,在老师的帮助,和对各种资料的查阅中,将问题解决,培养了我自主动手,独立研究的能力,为今后在学习工作中能更好的发展打下了坚实的基础。通过对此次图象处理综合训练的实际操作与分析,加深对图像的理解与增强实际动手能力,锻炼了我们分析与编写软件代码的能力与团结协作的能力。两周的课程设计很短暂,但其间的容是很充实的,在其中我学习到了很多平时书本中无法学到的东西,积累了经验,锻炼了自己分析问题,解决问题的能力,并学会了如何将所学的各科知识融会,组织,来配合学习,为以后的发展打下坚实的基础参考文献1 黄维通.Visual C+面向

12、对象与可视化程序设计.清华大学,20032 R C.Gonzalez, R E.Woods, S L. Eddins著,阮秋琦,阮宇智等译.计算机图象处理(MATLAB版).:电子工业,20053 K.R.Castleman. 计算机图象处理.:电子工业,20024 章毓晋.图像处理与分析-图像工程(上册),清华大学,20015 何斌等编著.Visual C+计算机图象处理.人民邮电,2002 6 R C.Gonzalez, R E.Woods著,阮秋琦,阮宇智等译.计算机图象处理(第2版).:电子工业,20037 宏林编著.Visual C+计算机图象模式识别技术与工程实践.人民邮电,200

13、3.致 这次综合训练中我学到了很多东西,真正做到了理论与实践相结合,得到了软件工程的综合训练,大提高了解决实际问题的能力,这与老师的指导和同学们的帮助是分不开的。我的指导老师徐志刚老师在此次综合训练过程中提出了指导性的方案和架构,并指引我阅读相关的资料和书籍,使我在不熟悉的领域中仍能迅速掌握新的技术。给予了我最大的帮助和全面的指导。 当然我的同学在程序设计中也给了我很大的帮助,没有他们,我就难以发现一些潜在的错误,在此我对他们的帮助表示感!附 录2.傅里叶算法实现: A=imread(.jpg); I=rgb2gray(A); C=fft2(double(I);%对图像进行傅立叶变换 B=ff

14、tshift(fft2(double(I);%将直流分量移到频谱图的中心 D=ifft2(B);%傅立叶反变换 figure;%画图像原始图 imshow(I); title(原图); figure; imshow(log(abs(B)+1),); title(直接变换频谱图); figure;%画直接变换频谱图 imshow(abs(D),); title(反傅里叶变换图); 3.小波多尺度和重构算法实现:i=imread(.jpg); x=rgb2gray(i); %真彩色图像转化为灰度图像 cA,cH,cV,cD=dwt2(x,db1); %对图像进行单层分解,小波为bd1 A=upco

15、ef2(a,cA,db1,1); H=upcoef2(h,cH,db1,1); V=upcoef2(v,cV,db1,1); D=upcoef2(d,cD,db1,1); %图像编码 figure subplot(221);image(wcodemat(A,192); title(近似细节系数); subplot(222);image(wcodemat(H,192); title(水平细节系数); subplot(223);image(wcodemat(V,192); title(垂直细节系数); subplot(224);image(wcodemat(D,192); title(对角细节系数

16、); d=idwt2(cA,cH,cV,cD,db1); %对分解的细节系数执行单层重构,小波为db1 imshow(d,); 图像进入界面源代码function varargout = tuxiang(varargin)% TUXIANG MATLAB code for tuxiang.fig% TUXIANG, by itself, creates a new TUXIANG or raises the existing% singleton*.% H = TUXIANG returns the handle to a new TUXIANG or the handle to% the e

17、xisting singleton*.% TUXIANG(CALLBACK,hObject,eventData,handles,.) calls the local% function named CALLBACK in TUXIANG.M with the given input arguments.% TUXIANG(Property,Value,.) creates a new TUXIANG or raises the% existing singleton*. Starting from the left, property value pairs are% applied to t

18、he GUI before tuxiang_OpeningFcn gets called. An% unrecognized property name or invalid value makes property application% stop. All inputs are passed to tuxiang_OpeningFcn via varargin.% *See GUI Options on GUIDEs Tools menu. Choose GUI allows only one% instance to run (singleton).% See also: GUIDE,

19、 GUIDATA, GUIHANDLES% Edit the above text to modify the response to help tuxiang% Last Modified by GUIDE v2.5 10-Jan-2013 13:34:37% Begin initialization code - DO NOT EDITgui_Singleton = 1;gui_State = struct(gui_Name, mfilename, . gui_Singleton, gui_Singleton, . gui_OpeningFcn, tuxiang_OpeningFcn, .

20、 gui_OutputFcn, tuxiang_OutputFcn, . gui_LayoutFcn, , . gui_Callback, );if nargin & ischar(varargin1) gui_State.gui_Callback = str2func(varargin1);endif nargout varargout1:nargout = gui_mainfcn(gui_State, varargin:);else gui_mainfcn(gui_State, varargin:);end% End initialization code - DO NOT EDIT% -

21、 Executes just before tuxiang is made visible.function tuxiang_OpeningFcn(hObject, eventdata, handles, varargin)% This function has no output args, see OutputFcn.% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data

22、 (see GUIDATA)% varargin command line arguments to tuxiang (see VARARGIN)% Choose default command line output for tuxianghandles.output = hObject;% Update handles structureguidata(hObject, handles);% UIWAIT makes tuxiang wait for user response (see UIRESUME)% uiwait(handles.figure_tuxiang);% - Outpu

23、ts from this function are returned to the command line.function varargout = tuxiang_OutputFcn(hObject, eventdata, handles) % varargout cell array for returning output args (see VARARGOUT);% hObject handle to figure% eventdata reserved - to be defined in a future version of MATLAB% handles structure

24、with handles and user data (see GUIDATA)% Get default command line output from handles structurevarargout1 = handles.output;% -function m_file_Callback(hObject, eventdata, handles)% hObject handle to m_file (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structu

25、re with handles and user data (see GUIDATA)% -function m_image_Callback(hObject, eventdata, handles)% hObject handle to m_image (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)% -function m_image_fyz_Callback(hOb

26、ject, eventdata, handles)% hObject handle to m_image_fyz (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)img_src=getappdata(handles.figure_tuxiang,img_src); I=rgb2gray(img_src); img_src=fft2(double(I);%对图像进行傅立叶变换

27、 B=fftshift(img_src);%将直流分量移到频谱图的中心 axes(handles.axes_dst);imshow(log(abs(B)+1),); % -function m_image_fyf_Callback(hObject, eventdata, handles)% hObject handle to m_image_fyf (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (

28、see GUIDATA)img_src=getappdata(handles.figure_tuxiang,img_src); I=rgb2gray(img_src); C=fft2(double(I);%对图像进行傅立叶变换 B=fftshift(C);%将直流分量移到频谱图的中心 D=ifft2(B);%傅立叶反变换 axes(handles.axes_dst);imshow(abs(D),); % -function m_image_xb_Callback(hObject, eventdata, handles)% hObject handle to m_image_xb (see GC

29、BO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)img_src=getappdata(handles.figure_tuxiang,img_src); x=rgb2gray(img_src); %真彩色图像转化为灰度图像 cA,cH,cV,cD=dwt2(x,db1); %对图像进行单层分解,小波为bd1 A=upcoef2(a,cA,db1,1); H=upcoef2(h,cH,db1

30、,1); V=upcoef2(v,cV,db1,1); D=upcoef2(d,cD,db1,1); %图像编码 subplot(221);image(wcodemat(A,192); subplot(222);image(wcodemat(H,192); subplot(223);image(wcodemat(V,192); subplot(224);image(wcodemat(D,192); img_src=idwt2(cA,cH,cV,cD,db1); %对分解的细节系数执行单层重构,小波为db1 axes(handles.axes_dst);imshow(img_src);% -fu

31、nction m_file_open_Callback(hObject, eventdata, handles)% hObject handle to m_file_open (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)filename, pathname = uigetfile( . *.bmp;*.jpg;*.png;*.jpeg, Image Files (*.b

32、mp, *.jpg, *.png, *.jpeg); . *.*, All Files (*.*), . Pick an image); if isequal(filename,0) | isequal(pathname,0), return; end axes(handles.axes_src); fpath=pathname filename; img_src=imread(fpath); imshow(img_src); setappdata(handles.figure_tuxiang,img_src,img_src); % -function m_file_save_Callback

33、(hObject, eventdata, handles)% hObject handle to m_file_save (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)filename, pathname = uiputfile(*.bmp,BMP files;*.jpg;,JPG files, Pick an Image); if isequal(filename,0)

34、 | isequal(pathname,0) return;%如果点了“取消”else fpath=fullfile(pathname, filename);%获得全路径的另一种方法 end img_src=getappdata(handles.figure_tuxiang,img_src);%取得打开图片的数据imwrite(img_src,fpath);%保存图片 % -function m_file_exit_Callback(hObject, eventdata, handles)% hObject handle to m_file_exit (see GCBO)% eventdata reserved - to be defined in a future version of MATLAB% handles structure with handles and user data (see GUIDATA)close(handles.figure_tuxiang); 26 / 26

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作计划

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁