项目demo源码:

opencv摄像头捕获视频+C++源码+4个demo+MFC-互联网文档类资源-CSDN下载


一般的传统的用opencv内部函数采集视频code如下:
#include"cv.h"
#include"highgui.h"
#include<ctype.h>
#include<stdio.h>
int main(int argc,char** argv)
{
IplImage* frame
CvCapture* capture=0;
capture=cvCaptureFromCAM(0);

if(!capture)
{
fprintf(stderr,"Could not initialize capturing...\n");
return -1;
}
frame = cvCreateImage(cvSize(320, 240), IPL_DEPTH_16U, 3);
cvNamedWindow("Window 0", 0);
//循环捕捉,知道用户跳出循环
while(capture)
{
frame=cvQueryFrame(capture);
cvShowImage("Window 0",frame);
if(cvWaitKey(1)==27)
break;
}
cvReleaseCapture(&capture);
cvDestroyWindow("Window 0");
return 0;
}

后来才发


现笔记本内置相机无法简单的使用opencv内部函数cvQueryFrame()来采集图像,网上查过资料之后,听说一般的摄像头,像外接相机采集视频支持的是VFW,那么就可以用OpenCV里面自带的函数进行采集,而我的笔记本内置摄像头采集卡支持的可能是directshow,那么只能采用Directshow的方法采集视频,具体方法如下:
1.事先需要下载相应DirectShow的源文件下载
2.把下载过来的源文件中的CameraDS.h CameraDS.cpp分别添加到目标工程中,并且把下载过来的DirectShow文件夹放入opencv根目录下
3.工具->选项->VC++目录下添加如下(假定装在D:\Program files):包含文件中D:\Program Files\OpenCV\DirectShow\Include;库文件中D:\Program Files\OpenCV\DirectShow\Lib
4.把CameraDS.h中#include "DirectShow/Include/qedit.h"和#include "DirectShow/Include/dshow.h"中的DirectShow/Include/去掉
主程序代码如下
int main(/*int argc,char** argv*/)
{
int cam_count;
//仅仅获取相机数目
cam_count = CCameraDS::CameraCount();
printf("There are %d cameras.\n", cam_count);
//获取所有相机的名称
for(int i=0; i < cam_count; i++)
{
   char camera_name[1024];
   int retval = CCameraDS::CameraName(i, camera_name, sizeof(camera_name));
   if(retval >0)
    printf("Camera #%d's Name is '%s'.\n", i, camera_name);
   else
    printf("Can not get Camera #%d's name.\n", i);
}
if(cam_count==0)
   return -1;
CCameraDS camera;

//打开第一个相机
//if(! camera.OpenCamera(0, true)) //弹出属性选择窗口
if(! camera.OpenCamera(0, false, 640,480)) //不弹出属性选择窗口,用代码制定图像宽和高
{
   fprintf(stderr, "Can not open camera.\n");
   return -1;
}

cvNamedWindow("camera");
while(1)
{
   //获取一帧
   IplImage *pFrame = camera.QueryFrame();
/*....视频处理代码....*/
   //显示
   cvShowImage("camera", pFrame);
   if (cvWaitKey(20) == 'q')
    break;
}
camera.CloseCamera(); //可不调用此函数,CCameraDS析构时会自动关闭摄像头
cvDestroyWindow("camera");
cvDestroyWindow("canny");
return 0;

}

opencv摄像头捕获视频相关推荐

  1. c语言 读取摄像头图片分辨颜色,opencv摄像头捕获识别颜色

    本文实例为大家分享了opencv摄像头捕获识别颜色的具体代码,供大家参考,具体内容如下 #include "highgui.h" #include "iostream&q ...

  2. 图像拼接(二):OpenCV同时打开两个摄像头捕获视频

    使用OpenCV实现同时打开两个USB摄像头,并实时显示视频.如果未检测有两个摄像头,程序会结束并发出"摄像头未安装好"的警告.这里推荐一个小巧的摄像头视频捕捉软件:amcap,使 ...

  3. python调用摄像头录制视频_Python OpenCV使用摄像头捕获视频

    我们知道,OpenCV是一款强大的跨平台的计算机视觉库,使用它能完成我们对于图像和视频处理的很多功能,今天,我们使用OpenCV来捕获计算机摄像头的视频. 使用OpenCV捕获摄像头视频 我们知道,视 ...

  4. opencv 摄像头捕获的图像保存为avi视频 代码解析

    #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <ope ...

  5. OpenCV 笔记(03)— 读取视频、通过摄像头采集视频、采集视频 canny 边缘检测

    我们本节学习如何利用 OpenCV 中的 VideoCapture 类,来对视频进行读取显示,以及调用摄像头. VideoCapture 它提供了从摄像机或视频文件捕获视频的 C++ 接口, 作用是从 ...

  6. opencv︱图片与视频的读入、显示、写出、放缩与基本绘图函数介绍

    本文来自于段力辉 译<OpenCV-Python 中文教程> 文章目录 一.图片 + 读入.显示.写出 1.cv2.imread() 2.cv2.imshow() 3.cv2.imwrit ...

  7. OpenCV捕获视频和摄像头

    从文件中捕获视频 其实使用OpenCV读取视频相当简单,只需要初始化一个VideoCapture对象,打开视频文件,逐帧读取. 程序 下面是简单的OpenCV代码: 1 2 3 4 5 6 7 8 9 ...

  8. python使用opencv调取摄像头捕获图片或视频通用模板

    之前一直不清楚opencv调用摄像头的具体方法,于是参考b站视频写了个通用模板,以后可以根据需要自行调整.视频链接 先定义图片和视频的保存路径 img_path = './img_video/test ...

  9. Atitit Java OpenCV 捕获视频

    Atitit Java  OpenCV 捕获视频 ,打开一段视频或默认的摄像头 有两种方法,一种是在定义类的时候,一种是用open()方法. 一. 读取视频序列 OpenCV提供了一个简便易用的框架以 ...

  10. opencv python 从摄像头获取视频、帧率、分辨率等属性设置和使用

    opencv python 从摄像头获取视频.帧率.分辨率等属性设置和使用 文章目录: 1,为了获取视频,你应该创建一个 VideoCapture 对象.他的参数可以是设备的索引号,或者是一个视频文件 ...

最新文章

  1. 树、森林与二叉树的相互转换
  2. Hangfire在ASP.NET CORE中的简单实现
  3. 137_Power BI 自定义矩阵复刻Beyondsoft Calendar
  4. 戴姆勒:停止内燃机研发 马斯克:欢迎进群!
  5. Netty工作笔记0068---Protobuf机制简述
  6. 计算机网络自顶向下-应用层
  7. APUE习题[实现dup2函数功能,不使用fcntl]
  8. 构建postfix邮件服务器(五)extmail和extman的安装,实现web使用和管理邮件系统...
  9. java中floor和ceil_floor() 和 ceil()函数
  10. 通过bower 下载管理angularjs
  11. Unity小游戏之闯关小游戏
  12. 4年Java经验面试总结(转)
  13. 人工智能的应用实例——Smartbi大数据AI机器人
  14. uni-app 微信小程序 腾讯地图选点插件
  15. 如何登陆亚马逊EC2
  16. Android替换系统默认输入法
  17. 【渝粤教育】国家开放大学2018年秋季 1315T社会调查方法 参考试题
  18. iphone数据传输已取消怎么办_iPhone被停用怎么办?iPhone如何解除停用状态?
  19. 互信息特征选择python_基于互信息的特征选择算法MATLAB实现 – OmegaXYZ
  20. 查询工作日 oracle,Oracle function实现根据输入的日期以及天数,获取此日期之后的天数的工作日...

热门文章

  1. 怎么理解java面向对象
  2. Visual Studio2019使用nmake编译调用libcurl库
  3. idea 主题设计+网站
  4. DMS文档内容管理系统
  5. 如何制作双层PDF文档?其实只需简单一步!
  6. jsonrpc php使用,php-JsonRPC
  7. 数值分析·学习 | 平方根法和追赶法matlab实现
  8. 多路复用之epoll模型
  9. 【基本办公软件】万彩办公大师教程丨二维条码制作工具
  10. mac的word中添加带圆圈的数字