首页 新闻 会员 周边 捐助

C# 视频解析问题

0
悬赏园豆:100 [已解决问题] 解决于 2011-12-23 19:02

各位大虾,小弟我在开发视频画面解析时候。用的是avicap32.dll组件开发的,我发现效率好慢!!
  有个想法直接操作视频流,根据摄像头的视频流改变画面。但是我在网上找了好久没有找到C#开发的资料,如果那位大虾做过这方面的项目(人脸识别),小弟我在这里跪求学习资料。小弟我现在卡在这里了。有想法转底层了.
   
  摄像头画面解析,比如说一个人的眼睛位置在视频画面的像素坐标(x,y);
  我最初是截图做,当是发现效率好低。光遍历所有的像素点CUP都到百分50了做不下去了。
  现在不知道大虾有什么好的方法!! 或者提示也行。
  C++ 或者C 我都不怎么懂。(我是想用C++开发当是小弟我底层不行做不了。希望用C#开发出来)

问题补充: 怎么没有人回答小弟, 大虾提示一下也行。我现在卡住了不知道怎么做了。
趁机的主页 趁机 | 初学一级 | 园豆:22
提问于:2010-11-12 10:31
< >
分享
最佳答案
0

可以用OpenCV里面的视频采集函数。

CvCapture

视频获取结构

typedef struct CvCapture CvCapture;

结构CvCapture 没有公共接口,它只能被用来作为视频获取函数的一个参数。

 

cvCreateFileCapture

初始化从文件中获取视频

CvCapture* cvCreateFileCapture( const char* filename );
filename 
视频文件名。

函数cvCreateFileCapture给指定文件中的视频流分配和初始化CvCapture结构。

当分配的结构不再使用的时候,它应该使用cvReleaseCapture函数释放掉。

 

cvCreateCameraCapture

初始化从摄像头中获取视频

CvCapture* cvCreateCameraCapture( int index );
index 
要使用的摄像头索引。如果只有一个摄像头或者用哪个摄像头也无所谓,那使用参数-1应该便可以。

函数cvCreateCameraCapture给从摄像头的视频流分配和初始化CvCapture结构。目前在Windows下可使用两种接口:Video for Windows(VFW)和Matrox Imaging Library(MIL); Linux下也有两种接口:V4L和FireWire(IEEE1394)。

释放这个结构,使用函数cvReleaseCapture。

 

cvReleaseCapture

释放CvCapture结构

void cvReleaseCapture( CvCapture** capture );
capture 
视频获取结构指针。

函数cvReleaseCapture释放由cvCaptureFromFile 或者cvCaptureFromCAM申请的CvCapture结构。

 

cvGrabFrame

从摄像头或者视频文件中抓取帧

int cvGrabFrame( CvCapture* capture );
capture 
视频获取结构指针。

函数cvGrabFrame从摄像头或者文件中抓取帧。被抓取的帧在内部被存储。这个函数的目的是快速的抓取帧,这一点对同时从几个摄像头读取数据的同步是很重要的。被抓取的帧可能是压缩的格式(由摄像头/驱动定义),所以没有被公开出来。如果要取回获取的帧,请使用cvRetrieveFrame。

 

cvRetrieveFrame

取回由函数cvGrabFrame抓取的图像

IplImage* cvRetrieveFrame( CvCapture* capture );
capture 
视频获取结构。

函数cvRetrieveFrame返回由函数cvGrabFrame 抓取的图像的指针。返回的图像不可以被用户释放或者修改。

 

cvQueryFrame

从摄像头或者文件中抓取并返回一帧

IplImage* cvQueryFrame( CvCapture* capture );
capture 
视频获取结构。

函数cvQueryFrame从摄像头或者文件中抓取一帧,然后解压并返回这一帧。这个函数仅仅是函数cvGrabFrame和函数cvRetrieveFrame在一起调用的组合。返回的图像不可以被用户释放或者修改。  

 

可以参考这里

http://www.cnblogs.com/pangliang/archive/2010/11/21/1883566.html

 

OpenCV的C#版叫EmguCV

收获园豆:90
pangliang | 菜鸟二级 |园豆:295 | 2010-11-26 08:46
其他回答(1)
0

站位,我记得看过一个网页,上面是人脸识别,源码下载以后是C++写的。。

收获园豆:10
顾晓北 | 园豆:10898 (专家六级) | 2010-11-26 18:00
大虾能给个地址吗??
支持(0) 反对(0) 趁机 | 园豆:22 (初学一级) | 2010-11-27 09:48
http://topic.csdn.net/u/20101109/13/0e628cc5-189a-414a-9d90-aae88d78cf06.html?seed=1256828279&r=69735654#top
支持(0) 反对(0) 顾晓北 | 园豆:10898 (专家六级) | 2010-11-29 09:06
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册