应用软件开发实践实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
武汉工业学院数学与计算机学院
应用软件开发实践
实验报告
实训目的
(1)利用VC 设计并实现一个简单的系统,学习与体会开发一个实际工程项目所经历的步骤。
(2)学习建立一个工程项目(Project )的操作过程,学习编写与调试程序的基本方法。 (3)学习项目中采用知识点及相关算法,并且编程实现这些算法。
项目整体描述
系统整体框架
分功能描述
素描特效处理
素描,就是用木炭、铅笔、钢笔等工具,通过线条来画出物象明暗的单色画。
处理步骤如图
特效处理
素描特效处理 浮雕特效处理
朦胧特效处理
水墨画特效处理
建 立 灰度 图像
求梯度 处理 动感线条 合成素描图
像
图像拉伸 左光源照明 上光源照明
斜射光源照明
常规计算 法
快速计算法
一键完成水墨画
图层1 灰度图像 原彩色
图像 图层2 梯度图像 图层3 模糊图像 图层4 动感线条图像
图层5 素描图像
∑ 叠加
用到的函数
1 建立灰度图像: void CMyappView::OnGay() 点击菜单项 朦胧特效处理\图像拉伸 函数将运行。
2.触发所有视图类的UpDate ()函数: void CMyappView::OnShowColoe() 点击菜单项 显示原图 函数将运行。
3 显示图层:void CMyappView::OnShowL1() ;void CMyappView::OnShowL2() ;void CMyappView::OnShowL3() ;void CMyappView::OnShowL4() ;void CMyappView::OnShowL5() ;点击菜单项 显示图层1(2、3、4、5)函数将运行。
4 求梯度:void CMyappView::OnGetGrads() 点击菜单项 朦胧特效处理\求梯度 函数将运行。
5 模糊图像:void CMyappView::OnBlurry() 点击菜单项 朦胧特效处理\模糊图像 函数将运行。
6 生成动感线条:void CMyappView::OnInnervation() 点击菜单项 朦胧特效处理\生成动感线条 函数将运行。
7 合成素描图像:void CMyappView::OnSynthesize() 点击菜单项 朦胧特效处理\合成素描图像 函数将运行。
浮雕特效处理
浮雕画能表现出平面雕刻图案的效果,具有立体感。浮雕图像是一种表现力沧桑、庄重的绘画手法。将数码相机拍摄的图像处理成为浮雕效果,具有很强的实用性。
处理步骤如图
用到的函数
1 图像拉伸:void CMyappView::OnStretch() 点击菜单项 朦胧特效处理\图像拉伸 函数将运行。
2 左光源照明:void CMyappView::OnLeftLighting() 点击菜单项 朦胧特效处理\左光源照明函数将运行。
3 上光源照明:void CMyappView::OnUpLighting() 点击菜单项 朦胧特效处理\上光源照明 函数将运行。
4 斜射光源照明:void CMyappView::OnTitleLighting() 点击菜单项 朦胧特效处理\斜射光源照明 函数将运行。
5 一键完成:void CMyappView::OnRilievoOK() 点击菜单项 朦胧特效处理\一键完成 函数将运行。
朦胧柔化处理
图层1 灰度图像
原彩色
图像 图层2 图像拉伸
图层3
左光源浮雕图像
图层4
上光源浮雕图像 图层5
斜射光源浮雕图像
朦胧柔化处理的数学原理很简单,就是对图像进行低通滤波,去掉高频成分,使图
像变得模糊。低通截止频率越低,图像越模糊。
图像滤波的方法有空间域滤波和频率域滤波。本章将采用一种最简单的空域滤波方法——均值滤波。为了达到较强的朦胧效果,应选用很大的邻域,例如25×25邻域。邻域越大,计算越是耗时。设图像的大小为1280×960像素,对每一个像素的3个基色均要进行25×25邻域的均值滤波,则要做的加法次数为1280×960×3×25×25=2.304×109次、除法为1280×960×3=3.6864×106次。用现行PC 计算,耗时达到几秒。 均值滤波的常规算法
我们要实现的是对彩色图像的朦胧处理,因此要分别对三个基色分量进行均值滤波。在以下程序中,原彩色图像存于C3中,对C3中的红色分量作均值滤波,存于B2中;对C3中的绿色分量作均值滤波,存于C2中;对C3中的蓝色分量作均值滤波,存于D2中。 函数表示为:void CMyappView::OnChanggui() 点击菜单项 朦胧特效处理\常规计算,该函数将运行。
均值滤波的快速算法
常规算法的计算两很大,耗时达到几秒。分析可知,计算中含有大量的重复。图4.2表示避免重复的算法。图中表示的为9×9邻域均值滤波。
(a )红点的均值滤波 (b )蓝点的均值滤波
图4.1 快速均值滤波算法示意图
计算每行的开头一个滤波值时,如图4.1(a )中的红点,必须按常规算法计算,并将邻域中的所有像素点之和S 保存好,以备计算下一个相邻的点时利用。图4.2(b )是计算下一个相邻的点(蓝点)的示意图,从S 中减去所有灰色点的值,加上所有绿色点之值,即为蓝色点的邻域中的所有像素点之和。函数表示为:void CMyappView::OnKuaisu() 点击菜单项 朦胧特效处理\快速计算,函数将运行。
水墨画特效处理
水墨画是一种用毛笔和墨水在宣纸上绘制的图画,特别适用于表现自然景色,如山
水林木等。
生成水墨画的操作过程如图
图层1 灰度图像
原彩色图
像 图层2 边缘图像
图层3 边缘柔化图像
Σ
水墨画 图像