多媒体技术实验报告一

多媒体技术实验报告一

一、      实验题目和目的

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

实验目的:熟悉和掌握使用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);//用于连接设备

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

七、        实验结果

八、        实验总结

 

第二篇:多媒体技术 实验报告 - 20xx

《多媒体系统原理与技术》实验报告

注意事项:实验一要求在课外完成,可以去电脑城看看电脑的基本配置与连接,有特殊要求应该注重哪些配置.实验二根据自己用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、  将自己的语音和其他背景音乐进行编辑,完成声音的合成效果,例如诗配乐、朗诵配乐或者歌曲配乐

相关推荐