计算机图象处理综合训练_图像几何变换程序的设计_说明书

上传人:l**** 文档编号:133285828 上传时间:2020-05-25 格式:DOC 页数:34 大小:865KB
返回 下载 相关 举报
计算机图象处理综合训练_图像几何变换程序的设计_说明书_第1页
第1页 / 共34页
计算机图象处理综合训练_图像几何变换程序的设计_说明书_第2页
第2页 / 共34页
计算机图象处理综合训练_图像几何变换程序的设计_说明书_第3页
第3页 / 共34页
计算机图象处理综合训练_图像几何变换程序的设计_说明书_第4页
第4页 / 共34页
计算机图象处理综合训练_图像几何变换程序的设计_说明书_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《计算机图象处理综合训练_图像几何变换程序的设计_说明书》由会员分享,可在线阅读,更多相关《计算机图象处理综合训练_图像几何变换程序的设计_说明书(34页珍藏版)》请在金锄头文库上搜索。

1、 实践教学实践教学 理工大学理工大学 计算机与通信学院 2011 年秋季学期 计算机图象处理综合训练计算机图象处理综合训练课程设计课程设计 题 目 图像几何变换程序设计 专业班级 信息与计算科学 2 班 姓 名 学 号 指导教师 成 绩 目目 录录 摘 要 1 一 前言 2 二 算法分析与描述 3 2 1 图象水平 垂直翻转 3 2 2 图象旋转 3 2 3 图象比例变换 4 三 详细设计过程 5 3 1 算法分析 5 3 2 实现图像几何变换 5 四 调试过程中出现的问题及相应解决办法 7 4 1 出现的问题 7 4 2 解决问题 7 五 程序运行截图及其说明 8 六 简单操作手册 11 设

2、计总结 14 参考资料 15 致 16 附 录 17 摘摘 要要 图像几何变换中包含了图像水平 垂直翻转 图像旋转变换 图像比例变换 在图像处理中主要用 VC 编写图像处理程序并调用 VC 图像处理的部分部函数 进行处理 通过程序实现图象水平 垂直翻转 图象旋转变换 图象比例变换 另 外 图像旋转以后会出现空穴的现象 程序中主要用最邻近插值算法和双线性插值 算法来处理 对程序进行相应的调试 并且用图例进行测试 以验证程序的正确性与可用性 调试及测试时 通过相关信息 充分验证程序的可用性 本程序通篇均用 C 写成 具有很高的严密性 具有很高的真实性与可靠性 关键词 数字图像处理 图像的旋转 垂直

3、 水平翻转 比例变换 一 前言一 前言 计算机图像处理 它是指将图像信号转换成数字信号并利用计算机对其进行处 理的过程 数字图像处理主要研究以下容 图像几何变换 如傅立叶变换 沃尔什变换 离散余弦变换等 图象锐化处理 图像编码压缩 图像增强和复原 图像分割 图 像描述 图像分类 识别 图像是人类获取和交换信息的主要来源 因此 图像处理的应用领域必然涉及 到人类生活和工作的方方面面 随着人类活动围的不断扩大 图像处理的应用领域 也将随之不断扩大 图像所带给人们的直观信息的特点 使得图像处理技术随着计 算机技术 多媒体技术的飞速发展取得了长足的进步 图像具有可反映人类第一感 觉下的思维的魅力 这些

4、年来 图像技术快速的向各个领域渗透 图像几何变换是指用数学建模的方法来描述图象位置 大小 形状等变化的方 法 是通过数学建模实现对数字图象进行几何变换的处理 可以让我们从不同角度 去观察或欣赏图片 增加了视觉对不同方位图象的深层理解与感知 二 算法分析与描述二 算法分析与描述 2 12 1 图象水平 垂直翻转图象水平 垂直翻转 图像的水平翻转操作是以原图像的垂直中轴线为中心 将图像分为左右两部分 对称变换 图像的垂直镜像操作是以原图的水平中轴线为中心 将图像分为上限两 部分对称变换 翻转后的高和宽都不变 设图像高度为 Height 宽度为 Width 原图中的 经过水平翻转后坐 0 x 0 y

5、 标将变为 Width 即 0 x 0 y 10 10 Width xx yy 同样 经过垂直翻转后坐标将变成为 Width 即 0 x 0 y 0 x 0 y 10 10 Height xx yy 2 22 2 图象旋转图象旋转 图像的旋转是指以图像中的某一点为原点以逆时针或顺时针方向旋转一定的角 度 通常是围绕图像的起始点以逆时针旋转 这样 就可以利用解析几何的方法来 实现图像的旋转 0 x 0 y 直角坐标系中的图像旋转 1 x 1 y 图像旋转计算公式如下 10 10 Width xx yy 其中 是原图像中的像素的坐标 是对应像素点经过旋 i j f i j ij i j 转变换后图

6、像的像素的像素点坐标 G ij 图像旋转以后会出现空穴的现象 可以用插值法来解决 所谓插值法就是在判 断为空穴的位置上填充一个估计的值 因为估计值的选择不同 得到的方法的复杂 度和效果也不同 在这里用的是均值插值法 均值插值法是将空穴像素周围像素的均值作为填充值填在该空穴点中 如 图 2 1 图像旋转示意 图 13 111223 212233 3132 0 0 0 0 G 0 0 0 f fff fff ff 其空穴像素点为的周围 上 下 左 右 的像素值为 则该点 2 3 13221223 ffff 的像素值 即 2313221223 4gffff 13 11122323 212233 31

7、32 0 0 0 G 0 0 0 f ffgf fff ff 2 32 3 图象比例变换图象比例变换 图象比例变换是指图象缩小 图象缩小是通过减少像素个数来实现的 根据所 期望缩小的尺寸数据 从原图象中选择合适的像素点 使图象缩小之后可以尽量保 持原有图像的概貌特征不丢失 以图象缩小为例设原图像大小为 M N 缩小为 k1M k2N k1 1 k2 1 算法步骤如下 1 设原图为 F i j i 1 2 M j 1 2 N 压缩后图像是 G x y x 1 2 k1M y 1 2 k2N 其中 c1 1 k1 c2 1 k2 为采样间隔 2 G x y F c1 x c2 y 三 详细设计过程

8、三 详细设计过程 3 13 1 算法分析算法分析 程序主要涉及到图象垂直 水平翻转 图象旋转 图象比例变换三种几何变换 总共用到 MirrorDIB 图像翻转 ZoomDIB 比例变换 RotateDIB 图像 旋转三个算法模块 具体分析如下 1 图像比例变换的函数中用到的主要参数 LPSTR lpDIB 指向源 DIB 的指针 float fXZoomRatio X 轴方向缩放比率 float fYZoomRatio Y 轴方向缩放比率 返回值 HGLOBAL 缩放成功返回新图象 否则返回 NULL 通过以上各参数实现图象的比例变换 可以对图像进行参数为 0 25 2 围的放大 和缩小的操作

9、 2 图像的翻转处理可以指定翻转的方式是水平还是垂直 利用指针指向要修 改的各部分 通过 if 语句判断翻转的方式 主要参数 LPSTR lpDIBBits 指向源 DIB 图像指针 LONG lWidth 源图像宽度 象素数 LONG lHeight 源图像高度 象素数 BOOL bDirection 镜像的方向 TRUE 表示水平镜像 FALSE 表示垂直镜 像 返回值 BOOL 镜像成功返回 TRUE 否则返回 FALSE 主要流程图如图 3 1 所示 图 3 1 图象翻转函数执行过程 3 图象的旋转过程中 调用控制图象旋转的函数会自动扩大图像以显示所有 的象素 函数中采用双线性插值算法

10、进行插值 主要参数 LPSTR lpDIB 指向源 DIB 的指针 int iRotateAngle 旋转的角度 0 360 度 返回值 HGLOBAL 旋转成功返回新图象 否则返回 NULL 逐字逐句的阅读源代码 了解了各函数块的功能后 在 VC 运行环境中调试程 序 使之能正确运行 3 23 2 实现图像几何变换实现图像几何变换 根据要求对文件名 工程名 进行修改 对运行菜单中的项目进行修改 删除 不用的菜单项 保留已有的所需菜单项 并且加入缺少的菜单项 运行程序 选取已有图像文件 通过菜单中的选项对图像进行各种几何变换 包括图象垂直 水平翻转 图像旋转 图像比例变换 保存几何变换后的图象

11、 并 对当前进行变换的界面进行截图用于文档的编写 bDirection Null 计算每行的字节数 锁定内存 if 条件语句判断 翻转方式 水平翻转垂直翻转 结束 结束 四 调试过程中出现的问题及相应解决办法四 调试过程中出现的问题及相应解决办法 4 14 1 出现的问题出现的问题 编译图像几何变换的程序时 出现了下面三个问题 1 error C2065 sin undeclared identifier 2 error C2065 cos undeclared identifier 3 error C2065 fabs undeclared identifier 三个问题都指向数学运算函数未

12、被声明和定义 如图所示 图 4 1 程序编译出错界面 4 24 2 解决问题解决问题 在 C 语言中 一些基本的数学运算函数都包含在 math h 头文件中 当程 序中需要用到数学函数时 要在程序的最前面加上头文件 在程序中就可以直接调 用所需的数学函数 所以就在图像几何变换的程序最前面加上语句 include 再进行 编译 运行 程序就正确了 五 程序运行截图及其说明五 程序运行截图及其说明 以 lena 原图为例进行图像几何变换的处理 以下为 lena 原图及处理后保存的 图象 1 未经任何处理的图象 如图 5 1 所示 图 5 1 lena 原图 2 图象进行垂直翻转处理 如图 5 2

13、所示 图 5 2 lena 原图垂直翻转 3 图象进行水平翻转处理 如图 5 3 所示 图 5 3 lena 原图水平翻转 4 图象进行比例变换处理 如图 5 4 所示 图 5 4 lena 原图比例变换 5 图象进行旋转处理 如图 5 5 所示 图 5 5 lena 原图旋转 30 六 简单操作手册六 简单操作手册 在 VC 中打开 06500225sunguoyue dsp 进行编译 运行 在打开的图形界面 中单击 文件 打开 选中所要处理的图片 打开 选择所要进行的变换方式 进行变换 最后保存图片 1 运行程序后 系统打开该界面 图 6 1 程序运行后的开始界面 2 在程序中打开所要进行

14、变换的图像 图 6 2 打开所要处理的图象界面 3 在程序中对图像进行垂直翻转的处理 图 6 3 图象垂直翻转处理界面 4 在程序中对图象进行水平翻转的处理 图 6 4 图象水平翻转处理界面 5 在程序中对图象进行比例变换 图 6 5 图象比例变换处理界面 6 在程序中对图象进行旋转的处理 图 6 6 图象旋转 30 的处理界面 设计总结设计总结 开始学数字图像处理这门课时 只是学了图像处理的各种理论知识 没有上机 实践过 尽管老师一直强调这门课的趣味的无穷性 但自己没有什么感觉 觉得那 些理论只是一些生硬的书面知识 课设这段时间的训练 我终于发现图像处理有着 强大的功能 而且它处理图像的程序

15、代码简洁易懂 很容易学会 一小段代码就能 实现图像的各种变换处理 真是太让人佩服了 就像我做的图像几何变换程序设计 不到一千行的程序就实现了图象的垂直翻转 水平翻转 比例变换 图像旋转四个 功能 在这次综合训练期间 我知道了更多 VC 编程等方面的知识 对数字图像处理 的知识也有了新的认识 对图像的几何变换也有了进一步的掌握 图像处理综合训练使我对图像处理的广泛应用有了深入的认识和体会 同时通 过这次的综合训练 也在一定程度上提高了我的实际动手能力 虽然只有短短的两 周 但我切实感受到综合训练对提高学习速度和消化知识的重要性 这次综合训练使我受益匪浅 参考资料参考资料 1 朱虹 计算机图象处理

16、基础 M 科学 2005 2 K R Castleman 计算机图象处理 M 电子工业 2002 3 章毓晋 图像处理与分析 图像工程 上册 M 清华大学 2001 4 何斌等编著 Visual C 计算机图象处理 M 人民邮电 2002 5 黄维通 Visual C 面向对象与可视化程序设计 M 清华大学 2003 6 R C Gonzalez R E Woods S L Eddins 著 阮秋琦 阮宇智等译 计算机图象处理 MATLAB 版 M 电子工业 2005 致致 通过这次的综合训练 也在一定程度上提高了我的实际动手能力 同时培养了我 解决实际问题的能力 如果没有老师的耐心讲解 我不会认识到自己的不足 虽然 只有短短的两周 但我切实感受到课程训练对提高学习速度和消化知识的重要性 在 两周的课程设计中 我得到了指导老师的精心指导 还得到了周围同学的热心帮助 和支持 在这里我要对他们表示衷心的感 附附 录录 函数名称 MirrorDIB 参数 LPSTR lpDIBBits 指向源 DIB 图像指针 LONG lWidth 源图像宽度 象素数 LONG lHeight 源图像高度

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作范文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号