如何使用 OpenCV 打开摄像头获取图像数据?
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 打开摄像头获取图像数据?的更多相关文章
- opencvbase 实现opencv打开摄像头和初步处理等效果操作(附源码)
// TwoCameraOnTimer2Dlg.cpp : 实现文件 /* CvMat, Mat, IplImage之间的互相转换 IpIImage -> CvMat CvMat mathead ...
- OpenCV打开摄像头失败
<span style="font-family: Arial, Helvetica, sans-serif;">#include <stdio.h>< ...
- opencv打开摄像头获取视频程序
// // main.cpp // opencv3 // // Created by PKU on 14-9-16. // Copyright (c) 2014年 PKU. All rights re ...
- opencv 打开摄像头(c++)
1,打开视频文件 2,打开IP摄像头 读取大华摄像头 大华的网络摄像头编号:DH-IPC-HFW1225M-I1-0600B,用的是RTSP协议. "rtsp://admin:dahua@1 ...
- opencv打开摄像头并新建窗口显示
几个程序使用的基本函数如下: ******************************************************************* cvCreateCameraCap ...
- Opencv打开摄像头,读不到图像,一般来说先读取第一帧,舍弃,然后就正常了
舍弃第一帧的程序: cap >> img; cv::waitKey(100); if (cvWaitKey(5) == 27) break; cap >> img;
- 项目实战:Qt+Ffmpeg+OpenCV相机程序(打开摄像头、支持多种摄像头、分辨率调整、翻转、旋转、亮度调整、拍照、录像、回放图片、回放录像)
若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...
- opencv 显示摄像头数据
本文章是一个小例子,主要是在ubuntu 系统中利用Opencv 显示摄像头的数据 ,显示到对话框中. 1.建立一个 main.cpp #include<opencv2/core/core.h ...
- Opencv——将摄像头拍摄写成视频文件
这里主要利用了Opencv打开摄像头的代码,以及写入视频的函数,只是这里要注意的是摄像头好像没有帧率,在cvCreateVideoWriter,时要自己设置 #include"cv.h&qu ...
随机推荐
- 浅谈Android进阶之路
过去十年是移动互联网蓬勃发展的黄金期,相信每个人也都享受到了移动互联网红利,在此期间,移动互联网经历了曙光期.成长期.成熟期.现在来说已经进入饱和期.依然记得在 2010-2013 年期间,从事移动开 ...
- python_如何在列表、字典中筛选数据?
实际问题有哪些? 过滤掉列表[3,9,-1,10.-2......] 中负数 筛选出字典{'li_ming':90,'xiao_hong':60,'li_kang':95,'bei_men':98} ...
- 可等待计时器添加APC测试
可等待计时器和用户计时器的最大区别在于用户计时器需要在应用程序中使用大量的用户界面基础设施,从而消耗更多的资源.此外,可等待计时器是内核对象,这意味着他们不仅可以在多个线程间共享,而且具备安全性. 用 ...
- 面向对象之原型——challenge
面向对象之原型 object-oriented面向对象的设计,不同于其他语言,js中的面向对象没有类的概念,因此,其对象也有些特殊. 所谓对象就是无序属性的集合,其属性可以包含基本值.对象.函数.也就 ...
- 【转】nagios使用带url的check_http检测主机
前一段时间在Cu论坛发现一个提问,问题是nagios关于检测主机http服务的.原帖地址http://bbs.chinaunix.net /forum.php?mod=viewthread&t ...
- Part 4:表单和类视图--Django从入门到精通系列教程
该系列教程系个人原创,并完整发布在个人官网刘江的博客和教程 所有转载本文者,需在顶部显著位置注明原作者及www.liujiangblog.com官网地址. Python及Django学习QQ群:453 ...
- ABP官方文档翻译 6.1.1 MVC控制器
ASP.NET MVC控制器 介绍 AbpController基类 本地化 其他 过滤器 异常处理和结果包装 审计日志 验证 授权 工作单元 介绍 ABP通过Abp.Web.Mvc nuget包集成到 ...
- BZOJ 3787: Gty的文艺妹子序列 [分块 树状数组!]
传送门 题意:单点修改,询问区间内逆序对数,强制在线 看到加了!就说明花了不少时间.... 如果和上题一样预处理信息,用$f[i][j]$表示块i到j的逆序对数 强行修改的话,每个修改最多会修改$(\ ...
- AWS-SS配置过程
为满足家长要求,以下只录步骤: 远端: 1. 注册并启动一个AWS实例.这一步网上N多教程,搜 AWS EC2 等均可. 2. 远程安装SS,并写配置文件.依然网搜, AWS S(hadow)S(oc ...
- JS中的内置对象简介与简单的属性方法
JS中的数组: 1.数组的概念: 数组是在内存中连续存储的多个有序元素的结构,元素的顺序称为下标,通过下标查找对应元素 2.数组的声明: ①通过字面量声明var arr1 = [,,,,] JS中同一 ...