OpenCV x64 vs2010 下打开摄像头录制视频写成avi(代码为转载)

简介: 首先参照下面这里进行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位的编译器。

首先参照下面这里进行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)

 

 

相关文章
|
2月前
|
编解码 数据安全/隐私保护 计算机视觉
Opencv学习笔记(十):同步和异步(多线程)操作打开海康摄像头
如何使用OpenCV进行同步和异步操作来打开海康摄像头,并提供了相关的代码示例。
126 1
Opencv学习笔记(十):同步和异步(多线程)操作打开海康摄像头
|
2月前
|
计算机视觉
Opencv学习笔记(八):如何通过cv2读取视频和摄像头来进行人脸检测(jetson nano)
如何使用OpenCV库通过cv2模块读取视频和摄像头进行人脸检测,并提供了相应的代码示例。
129 1
|
2月前
|
编解码 计算机视觉 Python
Opencv学习笔记(九):通过CV2将摄像头视频流保存为视频文件
使用OpenCV库通过CV2将摄像头视频流保存为视频文件,包括定义视频编码格式、设置保存路径、通过write写入视频文件,并提供了相应的Python代码示例。
163 0
|
2月前
|
缓存 监控 计算机视觉
视频监控笔记(三):opencv结合ffmpeg获取rtsp摄像头相关信息
本文介绍了如何使用OpenCV结合FFmpeg获取RTSP摄像头信息,包括网络架构、视频监控系统组成、以及如何读取和显示网络摄像头视频流。
77 1
|
2月前
|
计算机视觉 Python
python利用pyqt5和opencv打开电脑摄像头并进行拍照
本项目使用Python的PyQt5和OpenCV库实现了一个简单的摄像头应用。用户可以通过界面按钮打开或关闭摄像头,并实时预览视频流。点击“拍照”按钮可以捕捉当前画面并保存为图片文件。该应用适用于简单的图像采集和处理任务。
171 0
python利用pyqt5和opencv打开电脑摄像头并进行拍照
|
2月前
|
编解码 关系型数据库 计算机视觉
Opencv学习笔记(十一):opencv通过mp4保存为H.264视频
本文介绍了如何在OpenCV中通过使用cisco开源的openh264库来解决不支持H.264编码的问题,并提供了完整的代码示例。
175 0
Opencv学习笔记(十一):opencv通过mp4保存为H.264视频
|
4月前
|
算法 计算机视觉 Python
python利用opencv进行相机标定获取参数,并根据畸变参数修正图像附有全部代码(流畅无痛版)
该文章详细介绍了使用Python和OpenCV进行相机标定以获取畸变参数,并提供了修正图像畸变的全部代码,包括生成棋盘图、拍摄标定图像、标定过程和畸变矫正等步骤。
python利用opencv进行相机标定获取参数,并根据畸变参数修正图像附有全部代码(流畅无痛版)
|
4月前
|
计算机视觉 索引
OpenCV读取视频失败<无可用信息,未为 opencv_world453.dll 加载任何符号> cv::VideoCapture
本文介绍了解决OpenCV读取视频失败的错误,指出问题通常由视频路径错误或摄像头索引错误导致,并提供了相应的解决方法。
OpenCV读取视频失败<无可用信息,未为 opencv_world453.dll 加载任何符号> cv::VideoCapture
|
4月前
|
计算机视觉 Python
opencv在pycharm不能自动补全代码
opencv在pycharm不能自动补全代码
44 0
|
2月前
|
计算机视觉
Opencv学习笔记(三):图像二值化函数cv2.threshold函数详解
这篇文章详细介绍了OpenCV库中的图像二值化函数`cv2.threshold`,包括二值化的概念、常见的阈值类型、函数的参数说明以及通过代码实例展示了如何应用该函数进行图像二值化处理,并展示了运行结果。
587 0
Opencv学习笔记(三):图像二值化函数cv2.threshold函数详解