优秀的毕业设计论文网
计算机 JAVA 电子信息 单片机 机械机电 模具 土木工程 建筑结构 论文
热门搜索词:网络 ASP.NET 汽车 电气 数控 PLC

VC可视化图像处理系统

以下是资料介绍,如需要完整的请充值下载.
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
  
资料介绍:

摘要

本文的可视化图像处理程序是对图像信息处理有关的处理系统;并对数字处理概况进行了分析。本文设计的可视化图像处理程序是以WindowXp作为操作平台, 采用Microsotf公司推出的开发Win32环境程序,面向对象的可视化集成编程系统的具有程序框架自动生成,灵活方便的类管理,代码编写和界面设计集成交互操作,可开发多种程等优点的Visual C++作为开发工具。本图像处理程序实现对灰度图像的基本操作,如图像的打开,关闭,保存;图像的基本处理,如图像放大、缩小、旋转、位移、2值化处理、中值滤波、边缘检测、直方图、小波变换、傅立叶交换等等。对本系统的功能和算法进行了详细的论述。通过综述指出了目前研究中存在的问题并指出了今后的研究方向,着重论述了图像处理阶段的研究特点。本文提供图像处理程序的基本框架和主要的一些图像处理功能,但它却不是一个完整的商业图像处理软件,如果要升级为商业软件,还需要进行很多艰苦工作。

本文来自think58

[版权所有:http://think58.com]

[资料来源:http://THINK58.com]

关键词:可视化图像处理系统,直方图 ,小波变换,傅立叶,可视化 think58好,好think58 [来源:http://think58.com]

目录
摘要  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 think58 [来源:http://think58.com]
一、 流程分折  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

[资料来源:http://think58.com]

第四章 系统设计
第一节 总体设计
一、流程分析
图像处理系统将流程分为三个阶段,首先是图像处理阶段,第二是图像分析阶段,第三是图像理解阶段。图像处理阶段主要是在像素级上进行处理,进行图像的几何校正,图像的灰度变换处理,图像噪声滤除的平滑处理,目标物体边界的锐化处理等。这些处理很重要,如果这阶段处理不好,后面的工作根本无法展开。图像分析阶段主要对图像里感兴趣的目标进行检测、分割、特征和测量,分析的结果能为用户提供描述图像目标特点和性质的数据,把原来以像素描述的图像转变成比较简洁的非图像方式的描述。图像理解阶段主要通过对图像里各目标的性质和它们之间相互关系的研究,对描述抽象出来的符号进行运算,了解把握图像内容并解释原来的客观场景,提供客观世界的信息,指导和规化行为,其处理过程和方法与人类的思维推理可以有许多类似之处。
由于时间及能力的原因,本次的程序设计只达到了图像处理阶段,完成了图像处理中的打开、关闭、保存、直方图、傅立叶变换、小波交换等处理;数字图像处理是现代图像处理的主要方法,具有再现性好、精度高、适用面广和灵活性大等优点。
本文所作图像处理系统设计总体框架流程如图4-1所示:
 

内容来自think58

[资料来源:http://THINK58.com]

[版权所有:http://think58.com]

图4-1
二、功能框架结构
系统设计总体框架:
(1) 打开图像
(2) 决定处理方式
(3) 调用图像处理程处理图像
(4) 显示处理后图像
(5) 结束 内容来自think58 [资料来源:www.THINK58.com]

位图读取及显示方法框架如下:
(1) 开始
(2) 得到文件完整路径名
(3) 打开位图文件
(4) 读取BITMAPELEHEADER结构
(5) 文件是BMP格式吗?(否则转到(9))
(6) 得到位图大小并分配相应内存空间
(7) 读取BITMAPELEHEADER结构
(8) 计算像素起始位置,保存像素数据起始位置指针
(9) 结束 think58好,好think58

[资料来源:http://THINK58.com]

图像显示框架如下:
(1) 开始
(2) 从DOC对象中得到位图数据起始位置指针,并得到图像的宽高等信息
(3) 是否带有颜色索引表?(否则转到(9))
(4) 使用文件中颜色表数据创建调色板
(5) 把新创的调色板作为设备环境的调色板并保留原调色板
(6) 设定显示参数,显示位图
(7) 恢复原调色板
(8) 结束
(9) 设定显示参数,显示位图
(10) 结束
第二节 详细设计
一、图像的打开、关闭、保存
对于大多数人来说,在设计图像处理系统时,最大的难点就是对图像的打开、关闭和保存。由于时间及能力原因,对于现存的所有的图像文件格式,本文主要介绍BMP图像文件格式,BMP文件里的图像数据是未压缩的,因为图像的数字化处理主要是对图像中的各个像素进行相应的处理,而未压缩的BMP图像中的像素数值正好与实际要处理的数字图像相对应,这种格式的文件最合适对之进行数字化处理。请读者记住,压缩过的图像是无法直接进行数字化处理的,如JPEG、GIF等格式的文件,此时首先要对图像文件解压缩,这就要涉及到一些比较复杂的压缩算法。在第二章 第二节的位图文件格式中已给出了位图的文件格式:位图文件头BITMAPFILEHEADER、位图信息头BITMAPFILEHEADER、调色板RGBQUAD等位图基本信息。因为,对于图像的打开、关闭、保存等操作如下所操作。

本文来自think58 [来源:http://think58.com]


(一) 图像的打开、显示如下:
(1) 开始
(2) 得到文件完整路径名
(3) 打开位图文件
(4) 读取BITMAPELEHEADER结构
(5) 文件是BMP格式吗?(否则转到(14))
(6) 是否带有颜色索引?(否则转到(15))
(7) 使用文件中颜色表数据创建调色板
(8) 把新创的调色板作为设备环境的调色板并保留原调色板
(9) 设定显示参数,显示位图
(10) 恢复原调色板
(11) 得到位图大小并分配相应内存空间
(12) 读取BITMAPELEHEADER结构
(13) 计算像素起始位置,保存像素数据起始位置指针
(14) 结束
(15) 设定显示参数,显示位图  并转到(11) think58好,好think58
[资料来源:http://THINK58.com]

BMP位图包括位图文件头结构BITMAPFILEHEADER、位图信息头结构BITMAPINFOHEADER、位图颜色表RGBQUAD和位图像素数据四部分。处理位图时要根据文件的这些结构得到位图文件大小、位图的宽、高、实现调色板、得到位图像素值等等。这里要注意的一点是在BMP位图中,位图的每行像素值要填充到一个四字节边界,即位图每行所占的存储长度为四字节的倍数,不足时将多余位用0填充。
启动Visual C++,生成一个名为Imgcx的单文档程序。在处理图像应用程序的文档类(Global.h)中声明如下宏及公有变量:
建立图像表示用Dib:
EXIMPORT int CreateDispDib(CDC* pDC, int xsize, int ysize); 本文来自think58 [资料来源:www.THINK58.com]

消除Dib:
EXIMPORT void DeleteDispDib(void);

think58好,好think58

[资料来源:www.THINK58.com]

[资料来源:http://THINK58.com]

建立参考窗口读入图像:
EXIMPORT int Load_imagefile_bmp();

think58 [资料来源:www.THINK58.com]

[资料来源:www.THINK58.com]

直接输入文件名读入图像:
EXIMPORT int Load_original_image(CString filename);

[资料来源:THINK58.com]

读灰度图像数据到设定内存:
EXIMPORT int ReadImageData(BYTE *image); 内容来自think58 [来源:http://think58.com]

读彩色图像数据到设定内存:
EXIMPORT int ReadImageDataRGB(BYTE *imageR, BYTE *imageG, BYTE *imageB); 内容来自think58

[资料来源:www.THINK58.com]

图像保存:
EXIMPORT BOOL Save_imagefile_bmp(); think58好,好think58

[来源:http://www.think58.com]

图像另存为:
EXIMPORT BOOL SaveAs_imagefile_bmp(); think58.com

[来源:http://www.think58.com]

获得图像横向大小:
EXIMPORT int GetXSize(); 本文来自think58

[资料来源:http://think58.com]

获得图像纵向大小:
EXIMPORT int GetYSize();

[资料来源:http://THINK58.com]

获得图像数据指针:
EXIMPORT LPBYTE GetImage();

本文来自think58 [资料来源:http://think58.com]

[版权所有:http://think58.com]

获得图像类型(8 = 灰度、24 = 彩色):
EXIMPORT int GetImageType(); [来源:http://www.think58.com]

表示内存内的灰度图像:
EXIMPORT void Disp_image(BYTE *image);

think58.com

[资料来源:http://think58.com]

[资料来源:THINK58.com]

表示内存内的彩色图像:
EXIMPORT void Disp_imageRGB( BYTE *imageR, BYTE *imageG, BYTE *imageB); think58 [资料来源:http://www.THINK58.com]

获得表示图像的名称:
EXIMPORT void GetImageFileName(char *cFileName); [资料来源:http://think58.com]

设定表示图像的名称:
EXIMPORT void PutImageFileName(CString fn);

[版权所有:http://think58.com]

获得表示的Dib:
EXIMPORT CDib* GetDib(void);

[资料来源:http://THINK58.com]

设定表示的Dib:
EXIMPORT void PutDib(CDib *pDib); [版权所有:http://think58.com]

彩色图像变灰度图像
EXIMPORT int Color_to_mono(); 本文来自think58

[资料来源:THINK58.com]

图像打开实现步骤:
1、读入位图文件
2、设定图像窗口大小
3、更新画面
4、判断图像格式
5为新图像分配内存
6、更新画面 think58

[资料来源:http://think58.com]

(二) 图像的保存及另存为
          图像保存及另存为流程图: think58.com [资料来源:http://think58.com]

图4-2
实现步骤:
1、 判断是否读入图像(N则转到3)
2、 调用保存语句保存
3、 结束 copyright think58 [版权所有:http://think58.com]