关于C++可视化图像处理的毕业设计和论文
毕 业 设 计 开 题 报 告
一、本课题的研究意义,国内外研究现状、水平和发展趋势
本系统的图像处理就是利用一系列的操作来改变图像的像素,以达到一定的目标。在图像处理系统的图像处理、图像分析、图像理解三个阶段中图像处理最为基本,而也尤为重要,因为这个阶段的工作关系到后面其他的操作。在计算机水平大大提高的基础上,图像处理在实际应用中也得到的很大的发展和利用,本系统是建立在图像处理之上,在实际中的应用得到更好的开发,也让图像分析,图像理解阶段得到更好的处理条件,从而让图像处理在实际中得到更多更广的利用。
我国科学计算可视化技术的研究开始于90年代初。由于数据可视化所处理的数据量十分庞大,生成图像的算法又比较复杂,过去常常需要使用巨型计算机和高档图形工作站等。因此,数据可视化开始都在国家级研究中心、高水平的大学、大公司的研究开发中心进行研究和应用。近年来,随着PC功能的提高、各种图形显卡以及可视化软件的发展, 可视化技术已扩展到科学研究、工程、军事、医学、经济等各个领域。随着Internetr 兴起,信息可视化技术方兴未艾。我国在80年代就开始进行科学计算可视化技术的研究和应用。至今,我国不论在算法方面,还是在油气勘探、气象、计算力学、医学等领域的应用方面,都已取得了一大批可喜的成果。但从总体上来说,与国外先进水平还有相当的差距,特别是在商业软件方面,还是空白。因此,组织力量开发可视化商业软件,并通过市场竞争,促使其逐步成熟,已成为当务之急。
二、本课题的基本内容,预计可能遇到的困难,提出解决问题的方法和措施
(一):系统设计采用了C++这门目前非常成熟的基于面向对象的计算机程序设计语言,开发工具选用Visual C++6.0。操作系统选用Windows XP等。所阐述的可视化图像处理系统演示程序的主要功能是对BMP图像的处理,主要有图像的基本操作:打开,关闭,保存;图像的基本处理:放大、缩小、位移、2值化处理、旋转、灰度拉伸、中值滤波、边缘提取、直方图 ,小波交换,傅立叶交换。
课题难点在于:
(1) 要利用计算机对数字化图像进行处理,首先要对图像的文件格式要有清楚的认识,因为自然界的图像以模拟信号的形式存在,在用计算机进行处理以前,首先要数字化;如果用户想要生成目标图像文件,必须根据文件的格式做相应的处理。
(2) 如何表示有关的知识并以恰当的方式引入图像处理。由于图像处理任务的复杂性,目前要找出一个通用的方法适应各种情况是几乎不可能的。另一方面,在建立普适的图像处理方法时,往往会忽略某类图像具有的特定属性。我们利用研究者提出基于对象图像处理的概念:限定图像处理的对象为一类物体(BMP灰度图像),考察对象的共有属性(称为先验),并将其结合到图像处理的任务中以提供更多的信息,从而提升图像处理的性能、提高处理效果。从而解决这个难题并更能体现图像处理的可操作性及正确性。
(二):课题具体分工
廖文帅:关联分析(推荐系统)
需求分析,
系统构架
代码编写
打开、关闭、保存
直方图
傅立叶变换
小波交换
李炳进:需求分析
系统构架
代码编写
放大、缩小、位移、旋转
2值化处理
灰度拉伸
中值滤波
边缘提取
(三):工作进度和日程安排
需求分析
代码设计
编码阶段
测试阶段
写论文
三.本课题拟采用的研究手段(途径)和可行性分析
C++是Windows编程的一个重要工具,与Windows的紧密结合使它在软件底层开发上占有非常大的优势。Visual C++具有与Windows的紧密结合、强大的类库支持和类改造能力、高效率的运行速度等优点。
Windows操作系统界面友好,操作简便,应用最为广泛。作为面向用户的图像处理系统,为了方便程序的开发和程序的使用,选择Windows环境。
由于个人计算机技术的快速发展,图像处理越来越贴近实际的生活。以前只有在高级计算机才能处理的图像,现在用个人计算机便能处理。图像处理技术发展至今,已经非常成熟,而许多成型的图像处理软件在软件市场推出以来也完全能让用户满意。
本图像处理系统设计是可行的。
1—4 周: 从网上及书本了解关于图像处理的知识,学习图像处理技术,写开题报告。
5—6 周: 构造系统的总体框架,偿试编写一些代码及设计小程序。
7—8 周: 开始编写代码并着手构建程序。
9—11 周: 总体系统程序设计。
12—13周: 对系统进行测试,并改正其中的一些错误。
14—15周: 写毕业论文,进行答辩。
四、参考文献
[1] 吕凤军.数字图像处理编程入门.北京:清华大学出版社.2000年
[2] 周长发.精通Visual C++图像编程.北京:电子工业出版社.2000年
[3] 周长发.多媒体计算机技术开发与应用.北京:电子工业出版社.1995年
[4] 伍俊良 编著.VC++课程设计与系统开发.北京:清华大学出版社.
[5] 杨淑莹 编著. 边奠英主审.VC++图象处理程序设计.北京:清华大学出版社、 北方交通大学出版社.
[6] teve Rimmer 著.木杉等译.Windows图象处理实用技术和范例. 北京:学苑出版社. 1994年
[7] 崔屹.数字图象处理技术与应用.北京:电子工业出版社. 1997年
[8] Scott Stanfield 等著.华译工作室译.Visual C++ 开发人员指南.北京:机械工业出版社.西蒙与舒斯特国际出版公司. 1997年
[9] 陈兵旗、孙明 编著.Visual C++ 实用图像处理. 北京:清华大学出版社. 2004年3月
[10] 林锐 著.高质量C++/C编程指南.北京:电子工业出版社,2002年
目录
摘要 ································································································································································· 5
Abstract························································································································································ 6
第一章.前言··········································································································································· 7
第一节 选题背景 ······························································································ 7
一 课题来源···································································································· 7
二 课题目的和意义························································································ 7
三 课题应解决的问题 ·················································································· 8
四 课题技术关键 ··························································································· 8
第二节 数字图像介绍 ····················································································· 8
一 数字图像的基本概念 ··············································································· 8
二 位图的分类 ···························································································· 10
第三节 本文的组织结构·················································································· 11
一、本文的主要工作···················································································· 11
二、本文的组织结构···················································································· 12
第二章 数字图像处理简介··············································································································· 13
第一节 图像处理概况······················································································ 13
一 基于计算机的图像处理·········································································· 13
二 各种图像处理的特点·············································································· 14
三 数字图像处理的特征 ············································································· 15
第二节 图像处理基础知识 ············································································· 16
一 图像处理的硬件构成 ············································································· 16
二 数字图像与Visual C++ ·········································································· 18
三 位图文件格式 ························································································· 19
四 采样与量化 ···························································································· 21
五 图像处理的基本步骤 ············································································· 22
第三章 方案设计与论证··············································································································· 24
第一节 方案设计······························································································ 24
第二节 可行性论证 ························································································· 25
第四章 系统设计································································································································ 26
第一节 总体设计······························································································ 26
一、流程分折 ······························································································· 26
二、功能框架结构························································································ 27
第二节 详细设计 ···························································································· 28
一、图像的打开、关闭、保存···································································· 28
二、直方图设计···························································································· 31
三、傅立叶交换···························································································· 34
四、小波交换 ······························································································· 39
第三节 编码 ····································································································· 41
一、开发语言特征························································································ 41
二、代码风格与代码质量············································································ 42
第五章 运行测试································································································································ 44
第一节 测试目的······························································································ 44
第二节 测试步骤······························································································ 44
一、图像打开及关闭···················································································· 44
二、直方图···································································································· 44
三、傅立叶变换···························································································· 45
四、小波变换································································································ 47
第三节 结果分析······························································································ 48
一、像打开及关闭························································································ 48
二、直方图···································································································· 48
三、傅立叶变换···························································································· 48
四、小波变换································································································ 48
第四节 存在问题······························································································ 49
第六章 结论············································································································································ 50
致谢 ······························································································································································· 51
参考文献 ··················································································································································· 52
第四章 系统设计
第一节 总体设计
一、流程分析
图像处理系统将流程分为三个阶段,首先是图像处理阶段,第二是图像分析阶段,第三是图像理解阶段。图像处理阶段主要是在像素级上进行处理,进行图像的几何校正,图像的灰度变换处理,图像噪声滤除的平滑处理,目标物体边界的锐化处理等。这些处理很重要,如果这阶段处理不好,后面的工作根本无法展开。图像分析阶段主要对图像里感兴趣的目标进行检测、分割、特征和测量,分析的结果能为用户提供描述图像目标特点和性质的数据,把原来以像素描述的图像转变成比较简洁的非图像方式的描述。图像理解阶段主要通过对图像里各目标的性质和它们之间相互关系的研究,对描述抽象出来的符号进行运算,了解把握图像内容并解释原来的客观场景,提供客观世界的信息,指导和规化行为,其处理过程和方法与人类的思维推理可以有许多类似之处。
由于时间及能力的原因,本次的程序设计只达到了图像处理阶段,完成了图像处理中的打开、关闭、保存、直方图、傅立叶变换、小波交换等处理;数字图像处理是现代图像处理的主要方法,具有再现性好、精度高、适用面广和灵活性大等优点。
本文所作图像处理系统设计总体框架流程如图4-1所示:
图4-1
二、功能框架结构
系统设计总体框架:
(1) 打开图像
(2) 决定处理方式
(3) 调用图像处理程处理图像
(4) 显示处理后图像
(5) 结束
位图读取及显示方法框架如下:
(1) 开始
(2) 得到文件完整路径名
(3) 打开位图文件
(4) 读取BITMAPELEHEADER结构
(5) 文件是BMP格式吗?(否则转到(9))
(6) 得到位图大小并分配相应内存空间
(7) 读取BITMAPELEHEADER结构
(8) 计算像素起始位置,保存像素数据起始位置指针
(9) 结束
图像显示框架如下:
(1) 开始
(2) 从DOC对象中得到位图数据起始位置指针,并得到图像的宽高等信息
(3) 是否带有颜色索引表?(否则转到(9))
(4) 使用文件中颜色表数据创建调色板
(5) 把新创的调色板作为设备环境的调色板并保留原调色板
(6) 设定显示参数,显示位图
(7) 恢复原调色板
(8) 结束
(9) 设定显示参数,显示位图
(10)结束
第二节 详细设计
一、图像的打开、关闭、保存
对于大多数人来说,在设计图像处理系统时,最大的难点就是对图像的打开、关闭和保存。由于时间及能力原因,对于现存的所有的图像文件格式,本文主要介绍BMP图像文件格式,BMP文件里的图像数据是未压缩的,因为图像的数字化处理主要是对图像中的各个像素进行相应的处理,而未压缩的BMP图像中的像素数值正好与实际要处理的数字图像相对应,这种格式的文件最合适对之进行数字化处理。请读者记住,压缩过的图像是无法直接进行数字化处理的,如JPEG、GIF等格式的文件,此时首先要对图像文件解压缩,这就要涉及到一些比较复杂的压缩算法。在第二章 第二节的位图文件格式中已给出了位图的文件格式:位图文件头BITMAPFILEHEADER、位图信息头BITMAPFILEHEADER、调色板RGBQUAD等位图基本信息。因为,对于图像的打开、关闭、保存等操作如下所操作。
(一)图像的打开、显示如下:
(1) 开始
(2) 得到文件完整路径名
(3) 打开位图文件
(4) 读取BITMAPELEHEADER结构
(5) 文件是BMP格式吗?(否则转到(14))
(6) 是否带有颜色索引?(否则转到(15))
(7) 使用文件中颜色表数据创建调色板
(8) 把新创的调色板作为设备环境的调色板并保留原调色板
(9) 设定显示参数,显示位图
(10)恢复原调色板
(11)得到位图大小并分配相应内存空间
(12)读取BITMAPELEHEADER结构
(13)计算像素起始位置,保存像素数据起始位置指针
(14)结束
(15)设定显示参数,显示位图 并转到(11)
BMP位图包括位图文件头结构BITMAPFILEHEADER、位图信息头结构BITMAPINFOHEADER、位图颜色表RGBQUAD和位图像素数据四部分。处理位图时要根据文件的这些结构得到位图文件大小、位图的宽、高、实现调色板、得到位图像素值等等。这里要注意的一点是在BMP位图中,位图的每行像素值要填充到一个四字节边界,即位
以上内容只是毕业设计作品的部分资料介绍,如果了解更多详情请联系客服QQ:57510459
购买帮助>>