多媒体技术实验报告一
一、 实验题目和目的
摄像头捕捉视频和静止图像
实验目的:熟悉和掌握使用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 和库文件vfw32.lib。
六、 实验过程
1、用Visual C ++的AppWizard 生成一个基于对话框的应用程序,并在StdAfx.h 中加入以下内容:
#include < vfw.h >
#pragma comment(lib,"vfw32.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,rect.Width(),rect.Wid
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_CapDrvCap.fCaptureInitialized){
// 如果初始化成功
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:\\Capture.avi";// 设置捕获文件
capFileSetCaptureFile(m_hCapWnd,m_CapFileName.GetBuffer(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();
在VideoCaptureDlg.cpp 修改为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);//用于连接设备
要做的就是根据相关的功能改变相应的参数就可以了
七、 实验结果
八、 实验总结
《多媒体系统原理与技术》实验报告
注意事项:实验一要求在课外完成,可以去电脑城看看电脑的基本配置与连接,有特殊要求应该注重哪些配置.实验二根据自己用PHOTOSHOP做封面设计的过程来写,实验三根据自己用COOL3D做新闻联播的过程来写.实验四根据自己使用GOLDWAVE录音和声音处理的过程来写.要求过程详细\真实.
实验一
课程名称:多媒体技术
实验名称:多媒体计算机的连接与组成
实验时数:4课时
实验日期:20##-6-1
一、实验目的
1、 了解多媒体计算机的连接
2、 了解多媒体计算机的基本硬件结构
二、实验内容与基本要求
1、 实际了解多媒体计算机的硬件结构和性能
2、 打开机箱后,慎重操作,避免损坏内部硬件
3、 正确连接多媒体计算机与外设
三、主要仪器及设备
多媒体计算机
四、实验步骤
(1) 仔细观察多媒体计算机与外设的连接
1、 熟悉外设与机箱的接口与连线
2、 能正确连接多媒体计算机与外设
(2) 打开多媒体计算机的机箱,认识和了解基本硬件设备
1、 认识主板、扩展槽
2、 认识电源
3、 认识cpu中央处理器
4、 认识硬盘、软盘、光盘驱动器
5、 了解以上各硬件与主板的连接
实验二
课程名称:多媒体技术
实验名称:图形图像处理
实验时数:4课时
实验日期:20##-6-3
一、实验目的
1、 了解图像处理的方法
2、 掌握图像处理的手段和技巧
二、实验内容与基本要求
1、 学会图层操作,重点掌握图像的合成方法
2、 学会恰到好处的使用滤镜
3、 掌握不同的图像处理方法
三、主要仪器及设备
多媒体计算机
四、实验步骤
实验三
课程名称:多媒体技术
实验名称:动画处理
实验时数:4课时
实验日期:20##-6-8
一、实验目的
1、 建立动画的基本理念
2、 掌握动画制作基本方法和技巧
二、实验内容与基本要求
1、 全部动画必须独立完成
2、 熟悉Cool3D的界面和基本功能.
三、主要仪器及设备
多媒体计算机
四、实验步骤
实验四
课程名称:多媒体技术
实验名称:音频处理
实验时数:4课时
实验日期:20##-6-10
一、实验目的
1、 了解声音的基本概念、声音采样的基本原理
2、 掌握获取数字化声音的基本方法
3、 学习和掌握声音的各种编辑手段
二、实验内容与基本要求
1、 独立完成全部内容、可采用自己制作的声音素材
2、 能进行声音合成等音频编辑操作
三、主要仪器及设备
多媒体计算机(Gold Wave环境下)
四、实验步骤
(1) 认识Gold Wave的界面和菜单功能
1、 熟悉Gold Wave的工作界面和菜单
2、 熟悉Gold Wave的编辑方法
(2) 用Gold Wave录制自己的语音
1、 进行录音前的设置和硬件连接
2、 录制一段自己的语音,包括朗诵、歌曲
(3) 用Gold Wave进行声音合成
1、 素材可自选,推荐使用教材光盘素材
2、 将自己的语音和其他背景音乐进行编辑,完成声音的合成效果,例如诗配乐、朗诵配乐或者歌曲配乐
1q实验粒子系统讲授时数05学时一实验类型研究创新型实验二实验目的通过本实验让学生熟练掌握三维图形程序编写掌握粒子系统的设计与实现…
多媒体实验报告实验一数字音频实验一实验时间20xx年3月29日一实验目的1了解不同数字音频指标对所生成声音文件音质的影响2掌握音频…
多媒体课程设计报告设计题目:物联网学院:计算机科学与信息学院专业:计科班级:计科101学号:XX学生姓名:XXX指导教师:XX20…
多媒体技术班级网络姓名李耿卓学号12023120xx0050多媒体中的多媒体通信技术1交互性交互性是多媒体通信系统区别于其他通信系…
《多媒体技术与应用》教学总结何瑜《多媒体技术与应用》是中专类计算机类专业必修的一门专业基础课,是为学生学习后续课程:《多媒体制作实…
陕西理工学院实验报告20xx20xx学年第2学期院系教科学院专业班级教技1201学号120xx14005学生姓名曾志腾实验地点实验…
实验报告题目姓名徐艳专业计科101学号1008060042一所用开发软件及其特点和应用领域介绍我们所用的开发软件是Autodesk…
屏幕录像软件专家姓名岳柳含专业计算机科学与技术学号1008060041一屏幕录像软件专家简介特点和应用领域屏幕录像软件专家是一款专…
多媒体技术实验报告学院班级姓名学号一实验题目PS打造Lomo效果二实验目的学习使用Authorware软件制作可执行程序熟悉使用各…
多媒体技术设计实验报告专业计算机科学与技术年级09级姓名张海建学号090601150提交日期1实验目的学会使用该flash软件进行…