用opencv + vs2013来打开计算机摄像头

前几天用javaJMF来打开摄像头,现在我用opencv来打开摄像头。下面是操作的具体细节

 

1.下载和安装opencv

在官网opencv.org  下载   OpenCV windows版下载下来。(我下载的是opencv-3.1.0.exe),下载后安装自动解压,选择安装位置就行了。

2.配置环境变量

  计算机 > 右键属性> 高级系统设置 >  环境变量>  系统变量

Path 下添加opencv 的路径  如:…… opencv\build\x64\vc12\bin;

Opencv 3.1.0 版本只有x64位的,这里的vc12 = vs2013 ,根据自己安装的vs版本来选择

3.工程包含目录配置

打开vs 2013 ,文件>新建>项目  > visual C++   >Win32 控制台应用程序

 

点击刚才新建的项目右键 >  添加>  新建项


 

在视图 >其他窗口> 打开属性管理器

 

点击项目->Debug|Win32->Microsoft.Cpp.Win32.User(右键属性,或者双击)即可打开属性页面。

打开属性页面后,就是一番配置了。首先是在

一.通用属性 > VC++目录  >  包含目录 

添加opencv安装目录中的... \opencv\bulid\include

二.  通用属性  > VC++目录  > 库目录

添加   ....opencv\build\x64\vc10\lib

三. 通用属性  > 链接器 > 输入 >附加的依赖项

opencv_world310d.lib   

 

如果编译时出现; 模块计算机类型“X86”与目标计算机类型“x64”冲突

解决办法:

点击项目右键 >  属性 > 把平台选为X64> 配置管理器 > 活动解决方案平台 选X64  (没有就新建)> 然后在连接器 >高级  > 目标计算机 (MachineX64 )

配置完有时候需要重启计算机才生效

 

 

下面是打开摄像头的代码:

整体思路:

1)添加包含文件opencv

2)创建对象,获取视频流

3)创建窗口,把获取的视频流显示出来

4)如果关闭,就释放获取视频流的对象

#include <opencv2\core\core.hpp>

#include <opencv2\highgui\highgui.hpp>

#include <opencv2\opencv.hpp>

using namespace cv;//命名空间

int main()

{

    VideoCapture capture(0);//创建VideoCapture对象

    if (!capture.isOpened())//判断是否打开摄像头,打开isOpened返回ture

        return 1;

    bool stop(false);//定义一个用来停止循环的变量

    Mat frame;//用来存放读取的视频序列,承载每一帧的图像 ,Mat类是用于保存图像以及其他矩阵数据的数据结构

  

    namedWindow("Camera");//创建一个窗口,显示每一帧的窗口

    while (!stop)

    {

        if (!capture.read(frame))//如果没有读取到就中断

        {

            break;

        }

        imshow("Camera", frame);//正常显示,把获取的视频填充到窗口中

       

        char c = cvWaitKey(33);

        if (c == 32)break; //使用空格键来停止ASCII 为32

    }

    capture.release();//释放

}

  



对于JMF  和opencv 来打开摄像头,这两个操作方法我都尝试过,对于二者我说说自己的一些想法,在没有做这个项目的时候,我认为很简单的,但事实好像不是这样,因为没有头绪,一切都是在网上找的资料,找了很多资料,又发现很多用不了,那个时候才感觉困难重重。但是还好我还是找到了解决方法。二者的环境安装配置都是比较麻烦的。我是这样认为的。对于JMF来说opencv感觉更不错,代码简洁更清晰。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值