首先参照下面这里进行opencv x64位机器下面的配置

http://wiki.opencv.org.cn/index.php/VC_2010%E4%B8%8B%E5%AE%89%E8%A3%85OpenCV2.4.4

参考到环境变量处的配置之后,文章中所说的x64位机器环境的配置就不是很清晰了,我自己摸索了一些,其实vs2010本身就不是一个64位的编译器。

所以我认为,在64位的win7旗舰版系统中,这个编译器就是支持64位程序的编译运行。

但是vs2010中没有能够直接创建64位程序啊,所以就新建win32控制台程序之后在进行设置。

下面是我在vs2008中的新建的工程做的实验,vs2010一样,都是在属性管理器中->右键工程->属性->配置管理起->活动平台解决方案->新选择平台,选择x64

接着就生成了,新的工程配置选项,如下图所示:

这时候回到,最上面的连接,讲里面所说的路径,配置一下:

http://wiki.opencv.org.cn/index.php/VC_2010%E4%B8%8B%E5%AE%89%E8%A3%85OpenCV2.4.4

画红线的部分右键属性,这里跟连接里面的教程不太一样,由于是在64位环境下,似乎不能直接配置成所有工程的通用属性,所以每次使用的时候都要从新配置下,这点可能要注意!

配置好了之后,可以使用教程中的代码进行一下测试,还要注意一个问题,教程中的代码可能不需要一些附加依赖库就能够运行,但是咱们下面的,驱动摄像头的程序就要用到很多附加依赖库。

有时候在网上搜的时候,由于版本的不同,所以附加依赖库后面的数字是不同的,大家复制粘贴的时候注意要修改一下。下面这些差不多是所有的库了

下面的都是带d 的,也就是debug版本 的附加依赖库:

opencv_contrib244d.lib

opencv_core244d.lib

opencv_features2d244d.lib

opencv_flann244d.lib

opencv_gpu244d.lib

opencv_highgui244d.lib

opencv_imgproc244d.lib

opencv_legacy244d.lib

opencv_ml244d.lib

opencv_nonfree244d.lib

opencv_objdetect244d.lib

opencv_photo244d.lib

opencv_stitching244d.lib

opencv_ts244d.lib

opencv_video244d.lib

opencv_videostab244d.lib

opencv_calib3d244.lib

opencv_contrib244.lib

opencv_core244.lib

opencv_features2d244.lib

opencv_flann244.lib

opencv_gpu244.lib

opencv_highgui244.lib

opencv_imgproc244.lib

opencv_legacy244.lib

opencv_ml244.lib

opencv_nonfree244.lib

opencv_objdetect244.lib

opencv_photo244.lib

opencv_stitching244.lib

opencv_ts244.lib

opencv_video244.lib

opencv_videostab244.lib

下面的程序来自这个连接

http://www.cppblog.com/lanshengsheng/archive/2013/01/16/197309.html

我用我的摄像头(蓝色妖姬M2200 免驱高清)测试,表明,能录8秒左右的avi格式的录像,因为是200次,每秒多少帧还不是很确定。

<span style="font-family:KaiTi_GB2312;font-size:24px;">// Camera_First.cpp : 定义控制台应用程序的入口点。
// //#include "stdafx.h" #include "cv.h"
#include "cxcore.h"
#include "highgui.h"
#include <iostream> using namespace std;
int main()
{
CvCapture* capture=cvCaptureFromCAM(-1);
CvVideoWriter* video=NULL; IplImage* frame=NULL; int n; if(!capture) //如果不能打开摄像头给出警告 { cout<<"Can not open the camera."<<endl; return -1; } else { frame=cvQueryFrame(capture); //首先取得摄像头中的一帧 video=cvCreateVideoWriter("camera.avi", CV_FOURCC('X', 'V', 'I', 'D'), 25,
cvSize(frame->width,frame->height)); //创建CvVideoWriter对象并分配空间 //保存的文件名为camera.avi,编码要在运行程序时选择,大小就是摄像头视频的大小,帧频率是32 if(video) //如果能创建CvVideoWriter对象则表明成功
{ cout<<"VideoWriter has created."<<endl; } cvNamedWindow("Camera Video",1); //新建一个窗口 int i = 0; while(i <= 200) // 让它循环200次自动停止录取 { frame=cvQueryFrame(capture); //从CvCapture中获得一帧 if(!frame) { cout<<"Can not get frame from the capture."<<endl; break; } n=cvWriteFrame(video,frame); //判断是否写入成功,如果返回的是1,表示写入成功 cout<<n<<endl; cvShowImage("Camera Video",frame); //显示视频内容的图片 i++; if(cvWaitKey(2)>0) break; //有其他键盘响应,则退出 } cvReleaseVideoWriter(&video); cvReleaseCapture(&capture); cvDestroyWindow("Camera Video"); } return 0; } </span>

另外在最后生成阶段可能出现无法调试的问题,在百度搜索了一下,可能是.suo文件出现了问题

按照如下方式修改可以解决:

首先打开菜单 项目->项目属性页 

选择 配置属性->链接器->调试->生成调试信息 改为 是 

选择 配置属性->C/C++ ->常规->调试信息格式 改为 用于“编辑并继续”的程序数据库(/ZI) 

选择 配置属性->C/C++ ->优化->优化 改为 禁用(/Od)

OpenCV x64 vs2010 下打开摄像头录制视频写成avi(代码为转载)的更多相关文章

  1. Android开发之打开闪光灯录制视频

    Android的SDK在线API上对录制视频的方法.步骤都写得非常清楚,但是如果没有一点思路,写起来也比较式费事.录制视频的全过程要打开闪光灯(可能是因为项目需要,或者特殊原因),则必须按照一定的顺序 ...

  2. javaCV开发详解之2:推流器实现,推本地摄像头视频到流媒体服务器以及摄像头录制视频功能实现(基于javaCV-FFMPEG、javaCV-openCV)

    javaCV系列文章: javacv开发详解之1:调用本机摄像头视频 javaCV开发详解之2:推流器实现,推本地摄像头视频到流媒体服务器以及摄像头录制视频功能实现(基于javaCV-FFMPEG.j ...

  3. opencv打开摄像头获取视频程序

    // // main.cpp // opencv3 // // Created by PKU on 14-9-16. // Copyright (c) 2014年 PKU. All rights re ...

  4. 在VS2010下打开VS2008项目的解决办法

    如何在vs2010中打开vs2008项目文件? 第一步:以记事本方式打开该项目的sln解决方案,找到这两行信息,分别如下:Microsoft Visual Studio Solution File,  ...

  5. ffmpeg命令 从网络摄像头录制视频

    安装 sudo apt-get install ffmpeg 录制视频为record.mp4文件 ffmpeg -y -i rtsp://cameral_ip:port -vcodec copy -a ...

  6. 摄像头录制视频并且保存成mp4

    import cv2import numpy as npimport os cap = cv2.VideoCapture(1)#v4l2-ctl --list-devices 查看设备号,非正常中断时 ...

  7. python使用opencv在Windows下调用摄像头

    环境准备 1.我这里使用的是python3.7.4,python官网下载较慢的同学可以移步至 https://pan.baidu.com/s/1XiPafBjM__zfBvvsLyK7kQ 提取码:z ...

  8. OpenCV人脸检测并把图片写成avi视频

    读出某一个文件夹下“jpg”后缀的全部图片后,用的OpenCV自带的人脸检测检测图片中的人脸,调整图片的大小写成一个avi视频. 主要是要记录一下CvVideoWriter的用法和如何从文件夹中读取某 ...

  9. OpenCV Open Camera 打开摄像头

    这是一个用OpenCV2.4.10打开摄像头的一个例子,参见代码如下: #include <iostream> #include <stdio.h> #include < ...

随机推荐

  1. DBCP连接池TestOnBorrow的坑

    生产环境连接池TestOnBorrow设置为false,导致有时获取的连接不可用.分析如下: TestOnBorrow=false时,由于不检测池里连接的可用性,于是假如连接池中的连接被数据库关闭了, ...

  2. Android的AdapterViewFlipper和Stackview-android学习之旅(三十)

    AdapterViewFlipper简介 AdapterViewFlipper继承了AdapterViewAnimater.每次只能显示一个组件,用showPrevious()和showNext()来 ...

  3. (八十六)使用系统自带的分享框架Social.framework

    使用Social.framework十分简单,能够便捷的分享到主流的社交框架. ①导入主头文件 #import <Social/Social.h> ②以新浪微博为例,首先判断服务是否可用, ...

  4. java设计模式---备忘录模式

    一.引子 俗话说:世上难买后悔药.所以凡事讲究个"三思而后行",但总常见有人做"痛心疾首"状:当初我要是--.如果真的有<大话西游>中能时光倒流的& ...

  5. 【一天一道LeetCode】#107. Binary Tree Level Order Traversal II

    一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 来源: htt ...

  6. iOS中发送短信/发送邮件的实现 韩俊强的博客

    需要引入框架: MessageUI.framework 布局如下: 短信和邮件: #import "ViewController.h" #import <MessageUI/ ...

  7. XML解析之SAX解析过程代码详解

    上一篇谢了解析原理和过程,这里应用代码直观认识这个原理: 新建Demo1类: import java.io.File; import javax.xml.parsers.SAXParser; impo ...

  8. java反射机制--reflection

    反射,reflection,听其名就像照镜子一样,可以看见自己也可以看见别人的每一部分.在java语言中这是一个很重要的特性.下面是来自sun公司官网关于反射的介绍:    Reflection is ...

  9. hadoop集群崩溃,因为tmp下/tmp/hadoop-hadoop/dfs/name文件误删除

    hadoop执行start-all后,显示正常启动. starting namenode, logging to /opt/hadoop-0.20.2-cdh3u0/logs/hadoop-hadoo ...

  10. OpenCV空洞填充算法

    讨论帖: http://bbs.csdn.net/topics/391542633 在Matlab下,使用imfill可以很容易的完成孔洞填充操作,感觉这是一个极为常用的方法,然而不知道为什么Op ...