您的位置:首页 > 其它

EasyCap视频音频采集棒VS2010视频显示

2014-06-18 19:57 288 查看

EasyCap视频音频采集卡在VS2010环境下视频采集

因实验需求,购买了EasyCap视频音频采集卡来实现视频的传输,为了实现在VS2010环境下对视频的处理,需要进行一定的配置,以便对视频进一步进行配置。

本文分三部分来进行介绍:

一、直接采用Opencv中 obj >> frame 函数无法采集EasyCap传入的图像,运行时将出现蓝屏现象(该方法无法打开EasyCap);

二、采用Shiqi Yu编写的Directshow程序可以打开USB2.0 Camera摄像头,但无法打开EasyCap传入的图像(该方法无法打开EasyCap);

三、Microsoft的SDK/Samples/multimedia/directshow/capture/amcap程序可以实现EasyCap传入图像的显示(该方法可以打开EasyCap);

主要介绍OpenCv的配置、Shiqi Yu编写的Directshow的配置和Amcap程序中的配置。

一、OpenCv配置:

实验第一阶段,本以为可采用Opencv函数直接实现对EasyCap采集棒的视频传输,故在VS2010中对OpenCv进行配置。

下载OpenCv 2.3.1 superpack版:(该版本使用的人较多),http://opencv.org/downloads.html 解压OpenCv 2.3.1到D盘(其它地址也可以)

配置过程:

1、环境变量PATH

右键“计算机” --- > “属性”--- > “高级系统设置”--- > “环境变量”--- > “用户变量”--- > “新建”,在弹出的“新建环境变量”窗口中输入变量名“PATH",变量值”D:\opencv\build“

2、配置工程属性

在VS2010中新建VC++工程

在”Solution Explorer“中,右键工程名称--- > “属性”--- > “Configuration Properties”--- > “VC++ Directories”

-------------在”Include Directories“中输入”D:\opencv\build\include" ; "D:\opencv\build\include\opencv" ; "D:\opencv\build\include\opencv2"

-------------在“Library Directories”中输入“D:\opencv\build\x86\vc10\lib"

在”Solution Explorer“中,右键工程名称--- > “属性”--- > “Configuration Properties”--- > “Linker"--- > “Input"

-------------在”Additional Dependencies“中输入以下依赖库文件,分为Active Debug和Release两个配置(在窗口的左上角显示当前所配置的编译环境)

-------------Active Debug状态下:

opencv_calib3d231d.lib

opencv_contrib231d.lib

opencv_core231d.lib

opencv_features2d231d.lib

opencv_flann231d.lib

opencv_gpu231d.lib

opencv_highgui231d.lib

opencv_imgproc231d.lib

opencv_legacy231d.lib

opencv_ml231d.lib

opencv_objdetect231d.lib

opencv_ts231d.lib

opencv_video231d.lib

-------------Release状态下:
opencv_calib3d231d.lib

opencv_contrib231d.lib

opencv_core231d.lib

opencv_features2d231d.lib

opencv_flann231d.lib

opencv_gpu231d.lib

opencv_highgui231d.lib

opencv_imgproc231d.lib

opencv_legacy231d.lib

opencv_ml231d.lib

opencv_objdetect231d.lib

opencv_ts231d.lib

opencv_video231d.lib

至此Opencv2.3.1 superpack版在VS2010环境下的配置过程完成(配置过程中,无论是环境变量的配置还是VC++路径的配置,用到的都是opencv\build中的路径,可键入如下代码进行测试(代码为采用Opencv打开摄像头代码,只要编译通过即可,不必运行):


<span style="font-size:18px;"><h5>#include "stdafx.h"
#include <opencv.hpp>
using namespace cv;
int main( int argc, char ** argv)
{
VideoCapture obj(0);
if( !obj.isOpened() )
{
return 0;
}
while(1)
{
Mat im,frame;
obj >> frame;
frame.copeTo(im);
}
}</h5>
</span>


二、Shiqi Yu的Directshow环境配置

对于EasyCap采集棒,由于采用Opencv函数无法直接打开摄像头,而且会出现蓝屏现象,经上网查询得知该Easycap需要采用Directshow方式打开.

1、下载Shiqi Yu所编写的CameraDS函数,将其中的directshow文件夹放入自己所建立的VC++工程文件中

2、将Shiqi Yu所编写的CameraDS函数中的CameraDS.cpp和CameraDS.h添加到自己的工程当中(注意:一定要在VS2010环境中添加到工程中,而不是简单的将两个文件复制到自己的工程文件)。

3、编译运行即可(注意:VS2010的有些版本在编译时会出现:Error 'Link' fatal error LNK1123 failure during conversion to COEF file invalid or corrupt, 此时需要下载 vs2010 sp1 补丁包(http://www.microsoft.com/zh-cn/download/details.aspx?id=23691)即可正常编译)

至此Shiqi Yu的Directshow环境配置完成,运行该程序可以实现对Easycap设备名称的读取,但无法实现视频的传输,在opencamera阶段会报错。

三、Amcap程序的环境配置


                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: