OpenCV 如何打开摄像头获取图像数据?

代码运行环境:Qt 5.9.1 msvc2015 32bit OpenCV 3.3.0

#include "include/opencv2/opencv.hpp"
#include <iostream>
using namespace std;
using namespace cv;
int main(int argc, char *argv[])
{
#define 第一个摄像头 0
#define 第二个摄像头 1
#define 第三个摄像头 2
#define Esc 27
//#define 轮廓检测
//#define 灰度化
#define 旋转90度
cv::VideoCapture capture;
capture.open(第一个摄像头);
if(!capture.isOpened())
{
return;
}
Mat frame;
#ifdef 轮廓检测
Mat cannyDst;
#endif // capture.set(CV_CAP_PROP_FRAME_WIDTH, 1280);
// capture.set(CV_CAP_PROP_FRAME_HEIGHT, 720);
// capture.set(CV_CAP_PROP_FRAME_WIDTH, 640);
// capture.set(CV_CAP_PROP_FRAME_HEIGHT, 480);
// capture.set(CAP_PROP_FRAME_WIDTH,320);
// capture.set(CAP_PROP_FRAME_HEIGHT,240);
// capture.set(CAP_PROP_EXPOSURE,10);//设置曝光率
// qDebug()<<capture.get(CV_CAP_PROP_FRAME_WIDTH)<<"x"<<capture.get(CV_CAP_PROP_FRAME_HEIGHT);
double FPS, T;
while(true)
{
T = (double)cv::getTickCount();
capture >> frame;
if(frame.empty())
break;
T = ((double)cv::getTickCount() - T) / cv::getTickFrequency();
FPS = 1.0 / T;
putText(frame, "FPS:"+std::to_string(FPS) , Point(30, 80), FONT_HERSHEY_TRIPLEX ,2, cvScalar(0, 0, 255, 0));//int(frame.rows*0.9)
// qDebug()<<frame.cols<<"x"<<frame.rows;
#ifdef 旋转90度
cv::transpose(frame,frame);
flip(frame, frame, 1);
#endif
#ifdef 灰度化
cv::cvtColor(frame, frame, CV_BGR2GRAY);
#endif
#ifdef 轮廓检测
cv::Canny(frame, cannyDst, 0, 50, 3);
cv::imshow("摄像头",cannyDst);
#else
cv::imshow("摄像头",frame);
#endif
//退出循环
if (waitKey(1) == Esc)
{
break;
}
}
}

如何使用 OpenCV 打开摄像头获取图像数据?的更多相关文章

  1. opencvbase 实现opencv打开摄像头和初步处理等效果操作(附源码)

    // TwoCameraOnTimer2Dlg.cpp : 实现文件 /* CvMat, Mat, IplImage之间的互相转换 IpIImage -> CvMat CvMat mathead ...

  2. OpenCV打开摄像头失败

    <span style="font-family: Arial, Helvetica, sans-serif;">#include <stdio.h>< ...

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

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

  4. opencv 打开摄像头(c++)

    1,打开视频文件 2,打开IP摄像头 读取大华摄像头 大华的网络摄像头编号:DH-IPC-HFW1225M-I1-0600B,用的是RTSP协议. "rtsp://admin:dahua@1 ...

  5. opencv打开摄像头并新建窗口显示

    几个程序使用的基本函数如下: ******************************************************************* cvCreateCameraCap ...

  6. Opencv打开摄像头,读不到图像,一般来说先读取第一帧,舍弃,然后就正常了

    舍弃第一帧的程序: cap >> img; cv::waitKey(100);  if (cvWaitKey(5) == 27) break; cap >> img;

  7. 项目实战:Qt+Ffmpeg+OpenCV相机程序(打开摄像头、支持多种摄像头、分辨率调整、翻转、旋转、亮度调整、拍照、录像、回放图片、回放录像)

    若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...

  8. opencv 显示摄像头数据

    本文章是一个小例子,主要是在ubuntu 系统中利用Opencv 显示摄像头的数据 ,显示到对话框中. 1.建立一个  main.cpp #include<opencv2/core/core.h ...

  9. Opencv——将摄像头拍摄写成视频文件

    这里主要利用了Opencv打开摄像头的代码,以及写入视频的函数,只是这里要注意的是摄像头好像没有帧率,在cvCreateVideoWriter,时要自己设置 #include"cv.h&qu ...

随机推荐

  1. Windows 性能搜集【perfmon】

    为方便问题发生后,问题原因的分析排查,我们可以在服务器中事先开启logman功能搜集服务器的性能数据,方便故障发生后,问题原因的分析排查 Windows服务器部署Permon性能搜集器: 1.使用管理 ...

  2. linux批量添加10个用户并将其随机密码和用户名写入文件

    需求: 批量新建10个测试用户,并且让其密码随机,把用户名和密码写入一个文件,并有创建时间和创建者 #!/usr/bin/python # -*- coding: utf-8 -*- import o ...

  3. python_11_字符编码

    什么是字符编码? --世界上有很多国家,每个国家都有自己独特的语言,所以在计算机普及的当今世界, 每个国家都有自己的字符编码,本国的软件运行在其他国家的机器上,会出现乱码, 有utf-8,gbk等各种 ...

  4. JavaScript之图片懒加载的实现

    图片懒加载指的是在浏览过程中随着需要才被加载出来,例如某宝上面浏览商品时,会伴随很多的图片,如果一次全部加载出来的话,显然资源有些浪费,并且加载速度也会相对降低,那么懒加载的实现很重要.即随着浏览翻阅 ...

  5. 解决eclipse maven工程中src/main/resources目录下创建的文件夹所显示样式不是文件夹,而是"包"图标样式的问题

    参考:http://blog.csdn.net/luwei42768/article/details/72268246 eclipse项目中创建maven项目后,有时在执行命令maven update ...

  6. 长整形 Unix系统毫秒时间 (long类型) 转换为时间格式

    /** * 把毫秒转化成日期 * * @param dateFormat(日期格式,例如:MM/ dd/yyyy HH:mm:ss) * @param millSec(毫秒数) * @return * ...

  7. sed的N;P用法

    sed的N;P用法 原文地址 这里介绍的是sed的一个多行模式的使用,一开始对sed中命令N的用法不是很理解,经过多次尝试,通过几个例子对N的用法进行总结: N即Next,它同n(next)的区别是: ...

  8. 从零开始学习前端JAVASCRIPT — 10、JavaScript基础ES6(ECMAScript6.0)

    ECMAScript 6.0(简称ES6)是JavaScript语言的下一代标准,已经在2015年6月正式发布了.它的目标,是使得JavaScript语言可以用来编写复杂的大型应用程序,成为企业级开发 ...

  9. Object Detection · RCNN论文解读

    转载请注明作者:梦里茶 Object Detection,顾名思义就是从图像中检测出目标对象,具体而言是找到对象的位置,常见的数据集是PASCAL VOC系列.2010年-2012年,Object D ...

  10. thinkphp使用自带webserver

    进入命令行,进入 tp5/public 目录后,输入如下命令:php -S localhost:8888 router.php 然后进行访问