版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于vw视频的视频编辑处理
随着计算机网络和技术手段的发展,视频应用技术得到了迅速提高。功能强大的VC++6.0为各种类型的应用程序的开发提供了良好的资源环境和丰富的开发方法。其中常用的视频开发应用程序包括两种,一是SDK开发包提供的视频捕捉控件CAPWND.OCX,它附带在视频采集卡上,为快速开发程序提供了一些方法和属性;另一种方法就是微软公司基于Windows操作系统的视频软件开发工具VFW(VideoforWindows),这个工具包含了开发视频应用程序所需要的接口函数(API)。VFW主要由AVICAP、MCIAVI、MSVIDEO、AVIFILE、ICM、ACM等6个模块组成,通过模块间的协调合作,来完成视频图象的捕捉和播放等功能。其中的AVICAP.DLL包含了执行视频捕捉的函数,给.AVI文件和视频音频设备驱动程序提供了一个高级接口。本文以VC++6.0作为程序开发语言,采用后一种方法,从新的角度示范了VFW的使用,并将视频截获的AVI文件转换为每一帧的图象,同时结合一个VC++的具体示例讨论了程序化图象采集与处理的实现细节。1软件系统模型本系统主要是对来自视频捕捉卡和数码摄像头的视频文件进行采集、存储和分析处理。所以PC机是系统运行的核心设备,软件运行环境为Windows2000或更高配置。此系统软件划分为4个主要模块:视频采集和播放、视频存储、数据分析与转化以及单帧图象监测与处理等。各模块功能如下:(1)视频采集和播放通过捕捉采集卡的视频信号,实现连续播放。(2)视频存储将视频信号截获并存储为AVI文件。(3)数据分析与转化对AVI文件进行解析,转化为每一帧的图象信息,并统计总帧数。(4)单帧图象监测与处理通过一个具体示例示范对一帧的图象如何进行监测与编辑。2生成的api结构本系统中未采用常用的MFC方法,因此系统设计及对话框和窗口应用的是Win32API结构,而系统的后半部分则嵌入了Premiere和Photoshop并通过MFC对目标位图进行了编辑,其中的窗口也定义成非矩形窗口。以下是视频截获需要的头文件和静态连接库:windows.hvfw.hcommdlg.hvfw32.lib1非矩形窗口定义#include<vfw.h>//窗口视频头文件#include<commdlg.h>//通用对话框#include"CapPicture.h"//资源头文件#include<windows.h>//窗口向导与设备头文件对非矩形窗口作了一系列宏定义:#defineEXIT105#defineHELP104#defineBIT-EXIT109#defineBIT-MAXIMIZE110......然后,应用静态连接库中的函数模型,定义了全局变量。通过方法intPASCALWinMain(HINSTANCE,HINSTAN-CE,LPSTR,int)进行应用程序的初始化,注册窗口类,设计一个用于视频播放的主窗口,并进入了消息循环。2wm-音频接口LRESULTCALLBACKMainWndProc(HW-ND,UINT,WPARAM,LPARAM)实现了对消息序列的应用,此方法中包括了WM-LBUTTONDBLCLK、WM-LBUTTONDOWNWM-PAINT、WM-COMMAND、WM-CREATE、WM-DESTR-OY等6个功能模块,其中WM-PAINT、WM-CO-MMAND、WM-CREATE、WM-DESTROY是主要的4个部分。对WM-PAINT模块的定义如下:caseWM-PAINT:FrameRgn(hDC,hRegion1,CreateSolidBrush(RG(0,0,0)),2,2);//设定一个红色边界区域BringWindowToTop(hwndSelCapDrvDlg);return(DefWindowProc(hwndMain,msg,wParam,lParam));//将对话框带到前景中再通过WM-COMMAND功能块完成对文件资源的选择,判断选择的文件是否打开及是否完成对视频文件的采集与录制工作。在WM-CREATE这个非常关键的模块中,给出如下代码:caseWM-CREATE:RECThelpRect,minRect,exitRect;HRGNhelpRgn,minRgn,exitRgn;hRegion1=CreateRoundRectRgn(0,0,500,400,200,200);//设计主区域hwndVideo=capCreateCaptureWindow((LPSTR)"MyCaptureWindow",WS-CHILD|WS-VISIBLE,//风格160,120,200,148,//位置和大小(HWND)hwndMain,//父辈主窗口(int)1);//定义视频捕捉窗口.........同时,该模块创建主窗口按钮、关闭按钮、最小化按钮、帮助按钮、视频录制按钮,并设计按钮大小和按钮位置,在下面的代码中:SetWindowRgn(hwndExit,exitRgn,1);SetWindowRgn(hwndMin,minRgn,1);SetWindowRgn(hwndHelp,helpRgn,1);设置了窗口和按钮区域的映射关系,并通过hwndSelCapDrvDlg=CreateDialog((HINSTANC-E)ghInstance,MAKEINTRESOURCE(SELCA-PDRVDLG),0,(DLGPROC)SelCapDrvProc);//获得列表句柄hwndSelCapDrvDlg-LBox=GetDlgItem(hwnd-SelCapDrvDlg,SELCAPDRVDLG-LSTBOX);EnumCapDrv();创建了选择捕获驱动对话框,实现了视频文件的播放与存储。然后,通过WM-DESTROY分支模块:caseWM-DESTROY:capPreview(hwndVideo,FALSE);//结束预览capDriverDisconnect(hwndVideo);//断开驱动连接PostQuitMessage(0);break;调用PostQuitMessage()函数,删除先前的VFW的素材。并由default分支default:return(DefWindowProc(hwndMain,msg,wParam,lParam));来处理所有其余的消息。通过上述方法,来自摄像头的视频文件就存储并导出为AVI文件。3在不压缩的视听文件的导出后,使用嵌入式premier来选择预期的传播格式,如所示bitmapsequence就得到了AVI文件的总帧数和具体第n帧的BMP格式图像。4文件的获取过程中,还增加了实体的背景位图的生成首先,采用动画中的抠象原理来实现区域数据的提取,这样可以应对无论多么复杂的窗口形状。因此,要先嵌入Photoshop,将位图处理为“蓝图”(同时应当注意位图背景颜色与抠象对象的颜色区别来进行背景颜色的设定),把不希望显示出来的象素点涂成纯蓝色(0,0,255)将其添加到工程中,设定资源代号为IDB-GOAL1。由方法GetRgnData(CBitmap&Bitmap,COLORREFBkColor,int*nCount)设定一个内空的区域。然后从第一行开始逐行扫描目标位图的象素,若为蓝色,就不管它;否则,用CombineRgn将其加入到区域数组中。在扫描完全部象素点后,得到了完整的区域数组。接着在窗口的OnCreate消息处理函数中加上下面的代码:m-BGBitmap.LoadBitmap(IDB-GOAL1);//加载背景位图m-rgndata=GetRgnData(m-BGBitmap,RGB(0,0,255),&m-size);//获得区域数据m-WndRgn.CreateFromData(NULL,m-size,m-rgndata);//由区域数据生成区域对象SetWindowRgn(m-WndRgn,TRUE);//设置窗口区域,改变窗口形状在OnPaint消息函数中通过下面的代码将背景位图画上:CPaintDCdc(this);BITMAPbm;m-BGBitmap.GetObject(sizeof(BITMAP),&bm);CDCmemDC;memDC.CreateCompatibleDC(&dc);CBitmap*oldbitmap=memDC.SelectObject(&m-BGBitmap);dc.BitBlt(0,0,bm.bmWidth,bm.bmHeight,&memDC,0,0,SRCCOPY);memDC.SelectObject(oldbitmap);memDC.DeleteDC();运行程序后,一个GOAL1就得到了,并能够通过程序将其保存。进一步可以由定时改变窗口区域和背景,来实现动态位图的变换,以达到将AVI文件中的目标对象实时提取,进行更换背景等二次开发的分析与编辑处理工程。但是,由于这个过程需要大量的位图变换,所以在程序启动时就完成了区域数组的运算,避免降低程序的响应度。3高效的视频数据处理利用VC++开发出的用于视频的实时采集、分析与监测的应用程序,具有操作界面形象直观、性能稳定的特点及较
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 金华市中医院肠梗阻的腹腔镜探查与处理考核
- 厦门市中医院护理职业生涯发展理论及应用试题
- 台州市中医院儿童皮试技术操作考核
- 池州市中医院颈椎间盘置换术技术资质认证
- 池州市人民医院胸腔镜肺叶切除术分级考核
- 南昌市中医院恶性高热抢救流程考核
- 嘉兴市中医院临床路径变异分析与优化措施笔试试题
- 南平市中医院脑血运重建手术适应证把握考核
- 龙岩市人民医院并发症监测评估考核
- 常州市中医院儿童骨髓腔输液技术考核
- 篮球空白战术板
- 医保工作各小组和医保相关制度
- 2023年江苏泰州现代农业发展集团有限公司招聘笔试题库含答案解析
- 第五章 亲核取代反应
- 医院医疗设备购置申请表(采购单)
- 从业人员健康管理制度完整版
- 2022年中交营口液化天然气有限公司招聘笔试题库及答案解析
- 《消防安全技术实务》课本完整版
- B2B业务的破 局之道??数字化重塑营销服体系
- 县级结核病定点医院设置规范 T∕CHATA 007-2020
- 北师大版确定位置教案.
评论
0/150
提交评论