- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PAGE
PAGE 6
本科实验报告
课程名称:
计算机动画
姓 名:
学 院:
计算机学院
系:
专 业:
学 号:
指导教师:
2011年 1月 18日
课程名称: 计算机动画 实验类型: 设计实验
实验项目名称: 图像风格化
学生姓名: 专业: 学号:
同组学生姓名: 指导老师:
实验地点: 实验日期: 2011 年 1 月 18 日
一、实验目的
1)图像风格化处理。
2)通过上述实验内容,了解动画动态控制的基本原理和方法,提高学生的动画编程能力。
二、实验要求
输入数据
输入数据用来描述物体的起始形状和终止形状,由若干点组成,起始形状和终止形状的点数一一对应,数据类型为int。
插值变量
插值变量变化范围是[0,1], 插值变量等于0时对应于初始形状,插值变量等于0时对应于终止形状;数据类型为float。
图像风格化处理
在输入图像上设置网格, 在网格结点上生成长度, 宽度变化的笔刷, 利用网格节点所在图像位置上的颜色加上随机扰动, 把输入图像绘制成具有某种艺术风格的图像。
三、主要仪器设备
Visual Studio2008,基于OPenCV开发环境
四、操作方法与实验步骤
【步骤一】阅读实验指导文档,理解领会样条插值算法
【步骤二】在Visual Studio 2008平台上建立Windows控制台工程
【步骤三】配置OPenCV环境。
【步骤四】在stylized.h下定义一个矩形笔刷类Brush,定义笔刷属性。实现代码如下:
class Brush
{
public:
int brush_length; //定义笔刷长度
int brush_width; //定义笔刷宽度
double theta; //定义角度
CvScalar color; //定义笔刷颜色,类型为OPenCV的CvScalar类
};
【步骤五】在stylized.cpp下实现图像风格化,基本思路为,读入一张800*600的图片flower.jpg以及一张空白的图片800*600图片blank.jpg将会被作为绘制风格化图片的图片,根据实际情况设置笔刷的长度和宽度。取得每个像素的颜色值,然后对角度做随机扰动,然后取得笔刷的起始点和终点用cvRectangle(img_dst, pt1, pt2, brush.color, brush.brush_width, 4, 0)以四连通的方式实现笔刷的绘制。实现代码如下
int main(int argc, char* argv[])
{
//读入图片文件
IplImage* img_src = 0;
if ( argc == 2)
{
img_src = cvLoadImage(argv[1], -1);
}
if ( img_src == 0)
{
img_src = cvLoadImage(DEFAULT_IMAGE_SRC, 1);
}
IplImage* img_dst = 0;
img_dst = cvLoadImage(DEFAULT_IMAGE_DST, 1);
if (img_src == 0 || img_dst == 0)
{
printf(Cant open Image File\n);
return -1;
}
//风格化
CvPoint pt1, pt2; //定义网格点对象,分别存储笔刷的起止点
CvSize img_size;
img_size.width = int(cvGetSize(img_src).width);
img_size.height = int(cvGetSize(img_src).height);
printf(Processing...\n);
Brush brush; //定义笔刷对象
brush.brush_length = BRUSH_LENGTH; //设置笔刷长宽
brush.brush_width = B
您可能关注的文档
- 新乡牧野区职业教育中心数字校园建设第一阶段采购项目二次.doc
- 新兴县2013-2015年度公务车辆定点.doc
- 新阳煤矿选煤厂射线应用仪防护效果检测与评价.doc
- 新一代高效低功耗电池与电源管理芯片研发与产业化.doc
- 新一代智能变电站数字化计量系统.doc
- 新沂永诚化工有限公司高盐废水焚烧处置项目环境影响报告书.doc
- 新增渔江公用6台解决渔湖站试验区线渔江二台供电半径过长.doc
- 新自考都变了啥.ppt
- 曳引驱动电梯定期检验自检报告.doc
- 易经形式结构.ppt
- 2025年碳中和目标下能源互联网分布式能源与智能电网融合创新报告.docx
- 2025年直播电商虚拟场景用户留存分析报告.docx
- 虚拟主播在2025年直播电商中的角色定位与发展策略.docx
- 2025年企业大学与职业院校师资培训合作模式研究.docx
- 优化后勤竞争先行-提升服务质量,构建竞争优势.pptx
- 露营地生态旅游项目环境风险评价报告.docx
- 连锁酒店新品牌线拓展在2025年消费者行为与偏好研究报告.docx
- 高考历史一轮复习教案:村落、城镇与居住环境.pdf
- 2024年仁寿县衔接资金项目使用与支付测试卷附答案.docx
- 工业互联网平台用户付费意愿与市场潜力预测:2025年行业白皮书.docx
文档评论(0)