多媒体_图像变换动画

多媒体_图像变换动画

ID:40639657

大小:1.14 MB

页数:9页

时间:2019-08-05

多媒体_图像变换动画_第1页
多媒体_图像变换动画_第2页
多媒体_图像变换动画_第3页
多媒体_图像变换动画_第4页
多媒体_图像变换动画_第5页
资源描述:

《多媒体_图像变换动画》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、///////////大学学生实验报告实验课程名称多媒体技术开课实验室学院学生姓名学号开课时间2015至2016学年第一学期总成绩教师签名软件学院制《多媒体技术》实验报告开课实验室:2015年10月30日学院年级、专业、班姓名成绩课程名称多媒体技术实验项目名称图像变换动画指导教师教师评语教师签名:年月日一、实验目的通过两幅图像的变换,实现动画效果。二、实验原理变形动画将一幅图像动态变换为另一幅大小相同、结构相似的图像。其中需要在两幅图像的主体结构中标注对应的变换点,在变换过程中按照对应点进行形状结构的变换。如果不考虑图像形状结构的变换,则可简单地实

2、现将一幅图像动态变换为另一幅大小相同的图像。其对应变换点就以对应的像素点确定。本实验即按照该方式实现。对于大小不一样的图像需要更复杂的处理方式。需要一定的插值算法生成图像变换所产生的额外的像素值。最终效果因算法的不同而不同。本实验不考虑该情形。变换结果先以图像文件方式存储,然后可采用两种方式实现动画展示:使用构造GIF动画的软件将变换过程的图像连接成GIF动画;自行编制软件按照一定的速度打开并展示变换过程的图像,形成动画展示效果。理论上对于不同格式的图像文件均可以实现图像变换动画。这里为了简化操作,统一使用BMP格式的图像文件。对于24位真彩色BM

3、P图像构造图像变换动画,主要就是对于图像数据阵列中的各对应像素点的RGB值进行插值变换,实现将一幅图像中的像素点的RGB值变换为另一幅图像中对应像素点的RGB值。对于使用调色板的BMP索引图像,生成图像变换动画的过程稍稍复杂。其变换方式有三种:(1)保持调色板不变,对于像素点进行颜色变换。将一个像素点变换为其对应的像素点时,根据该像素点索引值所指向的调色板表项的RGB和其对应的像素点索引值所指向的调色板表项的RGB,计算其变换图像的RGB值,然后在调色板中查找与变换过程图像的RGB值最接近的表项,将其对应的索引值作为变换过程图像的像素索引值。该方式

4、不改变原始调色板,但需要将变换过程RGB值映射为调色板中最接近的表项;(2)允许改变调色板,对于像素点进行颜色变换。根据变换图像各像素点的索引值找到其对应的调色板表项,从而获取各像素点的RGB值。然后按照与24位真彩色BMP图像变换相似的方式,通过插值计算变换过程图像各像素点的RGB值。该方式将可能在变换过程图像中生成超过256种RGB组合的颜色。如果再采用索引图像方式存储该图像,则需要自行构造新的调色板,并将变换过程图像各像素点的RGB值映射到调色板中的表项;(3)保持调色板不变,对于像素点进行索引值变换。即,对于变换图像像素点的索引值,通过插值

5、计算变换过程图像的索引值,实现简单的图像变换。上述三种图像变换方式中,第三种难以实现平滑的图像颜色变换,效果较差;第二种实现过程较为复杂,需要自行生成新的调色板;第一种最为可行。三、实验内容打开两幅大小相同的BMP图像,分别指定为起始帧、终止帧,指定变换帧数,实现将图像从起始帧逐步变换到终止帧,将一副图像动态地变换为另一幅图像。四、实验工具VS2013五、实验步骤如果不在程序中实现图像的打开显示和变换动画显示,可以利用控制台程序读入图像,处理后生成各中间帧。如果要在程序中实现图像的打开显示和变换动画显示,在这里将关键实验步骤分为c++和c#两个不同

6、的版本叙述,提供实验方法而不阐述具体实现步骤:1.C#版:C#对于图像的操作已经封装好了具体的类Bitmap,参阅资料就可以熟悉Bitmap类中所有成员函数及属性的作用,动态效果主要是利用timer控件。1)MFC布局如下:Time1的Enabled设置为True,Interval设置为10000ms相当于10秒Main.cpp:usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usi

7、ngSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Windows.Forms;namespaceanimation{publicpartialclassForm1:Form{publicBitmapcurBitmap;BitmapsouBitmap;BitmaporiBitmap;publicForm1(){InitializeComponent();}privatevoidForm1_Load(objectsender,EventArgse){}priva

8、tevoidbutton1_Click(objectsender,EventArgse){OpenFileDialogfi

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。