多媒体实验报告模板

篇一:多媒体实验报告

多媒体实验报告模板

本科实验报告

课程名称:

实验地点:

专业班级: 学号:

学生姓名:

指导教师

20xx年12月6日

太原理工大学学生实验报告

太原理工大学学生实验报告

篇二:《多媒体:概念与方法》实验报告模板-实验5

天津理工大学实验报告

学院(系)名称:计算机与通信工程学院

三、系统设计与开发步骤

1、多媒体应用系统主题:[比如,世界杯足球比赛]

2、知识结构:[主要介绍所选主题展示的内容,可用图表说明] 3、主要界面的设计:[用Visio绘制主要界面的设计简图] 4、开发工具:[素材处理工具、多媒体创作工具]

5、主要开发步骤:[如前面的4个实验一样,写出主要的操作步骤] (1)素材采集与处理

(2)多媒体应用系统开发 (重点写此内容) 知识结构

设计界面

? 素材

? 建立空白文

? 菜单栏中选择Modify—File—Properties,设置窗口属性及作品名称

? 加入背景

? 制作交互按钮 ,

? 利用画图 定做 按钮

? 按钮制作

(1)双击按钮,点Cursor改变响应的鼠标按钮。

篇三:多媒体技术实验报告一

多媒体技术实验报告一

一、 实验题目和目的

摄像头捕捉视频和静止图像

实验目的:熟悉和掌握使用Windows API 进行编程的基本原理和方法。熟悉各种不同的视频文件格式。

二、 实验要求

基本要求:利用windows api实现简单的视频捕捉功能 Bonus:连续捕捉静止图像

提示:使用winxp版本可以考虑采用vfw(video for windows)来实现,使用win7版本可以考虑采用directshow来实现,使用win8版本可以考虑采用Media Foundation或directshow来实现。

三、 实验内容

设计一个程序,有界面,可以调用摄像头进行视频捕捉并保存成文件。可以进行开始暂停。可以进行捕捉每一帧的画面并通过画图文件保存。

1、创建一个基于对话框的工程,如VideoPlay。

2、在对话框上添加相应的按钮,实现如动态捕捉、播放、连续捕捉等项功能。可考虑添加滑动条(slider 控件)用来反映目前的播放位置,等等。

3、为各个按钮添加相应的函数。

4、调试,运行。

四、 实验平台

实验硬件:个人PC机,摄像头

实验软件:VS2013,摄像头驱动程序,VFW开发包 实验平台:windows

五、 实验原理

Video for Windows 是WIN32 SDK 中多媒体编程SDK 的视频开发工具。在微软的Visual C++中提供了Video for Windows 的头文件vfw.h 和库文件。

六、 实验过程

1、用Visual C ++的AppWizard 生成一个基于对话框的应用程序,并在StdAfx.h 中加入以下内容:

#include < vfw.h >

#pragma comment(lib,"")

2、修改对话框资源,添加静态控制IDC_VIDEO 和按钮“捕捉”、“停止”、“设置格式”、“设置图像源”、“设置压缩”、“单帧捕获”、“定帧”、“退出”。(其实最重要的是“设置格式”、“设置图像源”、“设置压

缩”、“单帧捕获”、“退出”,其它可以将其设置成

不可见,同时也可将其保留,以便将来扩展其功能时可用。)

3、在对话框的头文件中加入以下说明。

HWND m_hCapWnd;// 预示窗口

BOOL m_bInit;// 捕捉器初始化

CAPDRIVERCAPS m_CapDrvCap;// CAPDRIVERCAPS 结构,定义驱动器性能 CAPSTATUS m_CapStatus;// CAPSTATUS 结构,定义捕捉窗口当前状态 CAPTUREPARMS m_Parms;// CAPTURE PARMS 结构,定义捕捉参数 CString m_CapFileName;// 捕捉文件名称

4、在对话框类的OnInitDialog() 函数中加入捕捉器初始化以及连接驱动器。

m_bInit=FALSE;

CWnd *pWnd=AfxGetMainWnd() ->GetDlgItem(IDC_VIDEO); // 得到预示窗口指针

CRect rect;

pWnd ->GetWindowRect( &rect); // 得到窗口大小

m_hCapWnd=capCreateCaptureWindow((LPTSTR)TEXT(" 视频捕捉测试程序 "),WS_CHILD|WS_VISIBLE|WS_EX_CLIENTEDGE|WS_EX_DLGMODALFRAME,0,0,h(),

th(),pWnd ->GetSafeHwnd(),0); // 设置预示窗口

ASSERT(m_hCapWnd);

if(capDriverConnect(m_hCapWnd,0)){// 连接第0 号驱动器

m_bInit=TRUE;

// 得到驱动器的性能

capDriverGetCaps(m_hCapWnd,sizeof(CAPDRIVERCAPS), &

m_CapDrvCap);

if(m_tureInitialized){

// 如果初始化成功

capGetStatus(m_hCapWnd, &m_CapStatus,sizeof(m_CapStatus)); // 得到驱动器状态

capPreviewRate(m_hCapWnd,30); // 设置预示帧频

capPreview(m_hCapWnd,TRUE); // 设置预示方式

}

else{// 初始化未成功

AfxMessageBox("视频捕捉卡初始化失败!");

AfxGetMainWnd() ->PostMessage (WM_CLOSE);

}

}

else{// 未能连接到驱动器

AfxMessageBox("与视频捕捉卡连接失败!");

AfxGetMainWnd() ->PostMessage(WM_CLOSE);

}

m_CapFileName="c:";// 设置捕获文件

capFileSetCaptureFile(m_hCapWnd,m_uffer(255));

5、在对话框类中加入响应“设置格式”消息的函数OnFormat()。 capDlgVideoFormat(m_hCapWnd);// 设置格式对话框

6、在对话框类中加入响应“设置图像源”消息的函数OnSource()。 capDlgVideoSource(m_hCapWnd);// 设置图像源对话框

7、在对话框类中加入响应“设置压缩”消息的函数OnCompress()。 capDlgVideoCompression(m_hCapWnd);// 设置压缩对话框

8、在对话框类中加入响应“捕捉”消息的函数OnCapture()。

capCaptureGetSetup(m_hCapWnd, &m_Parms,sizeof(m_Parms));// 得到设置参数

if(capCaptureSetSetup(m_hCapWnd,

&m_Parms,sizeof(m_Parms))==TRUE){

BOOL suc=TRUE;

suc=capCaptureSequence(m_hCapWnd); // 捕捉到文件

return suc};

else

return FALSE;

注意点:在VideoCaptureDlg.h 中把afx_msg void OnCapture();改为afx_msg BOOL OnCapture();

在 修改为BOOL CVideoCaptureDlg::OnCapture() //捕捉

9、在对话框类中加入响应“定帧”消息的函数OnFreezed()。 capPreview(m_hCapWnd,FALSE);// 定帧

10、在对话框类中加入响应“单帧捕获”消息的函数OnImage()。 capGrabFrameNoStop(m_hCapWnd);// 截获当前图像

capEditCopy(m_hCapWnd);// 将图像拷贝到剪贴板

11、在对话框类中加入响应“停止”消息的函数OnStop()。

capCaptureStop(m_hCapWnd);// 停止捕捉

12、在对话框类中加入响应“退出”消息的函数OnExit()退出前断开捕捉器与驱动器的连接,并关闭窗

口。

capDriverDisconnect(m_hCapWnd);

CDialog::OnCancel();

附加说明:以上添加的'按钮用于捕捉图像(button);

另外添加(Static Text)用于创建并设置捕获窗口;

保存图像的方法:点击“单帧捕获”——>打开附近里的“画

图”——>“编辑”中的“粘贴”——>即可保存

捕捉的位图。

以上方法主要是采用了VFW 的函数和宏,也可以尝试用消息的方法,同样也可以实现。

如:SendMessage (hWndC, WM_CAP_DRIVER_CONNECT, 0, 0L);//用于连接设备

要做的就是根据相关的功能改变相应的参数就可以了

七、 实验结果

八、 实验总结