如何使用 OpenCV 打开摄像头获取图像数据?
OpenCV 如何打开摄像头获取图像数据?
代码运行环境:
Qt 5.9.1 msvc2015 32bitOpenCV 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 ...
随机推荐
- 解决service层无法注入
练手时发现个问题,路径404,各种检查发现,多加了一层<context:component-scan base-package="com.yanan.controller"/ ...
- 转-How to install an SSH Server in Windows Server 2008
window也可以通过ssh客户端连接,具体方式参考下面 1 How to install an SSH Server in Windows Server 2008 2 freeSSHd and fr ...
- python urllib2与urllib
1.urllib2可以接受一个Request对象,并以此可以来设置一个URL的headers,但是urllib只接收一个URL. 2.urllib模块可以提供进行urlencode的方法,该方法用于G ...
- jsp页面取值
一般就用el表达式 ${recordList[4].baseRate8.split("/")[0] } <s:date name="recordList[#id]. ...
- Percona监控MySQL模板详解
InnoDB Adaptive Hash Index 显示了"自适应哈希索引"的使用情况,哈希索引只能用来搜索等值的查询. # Hash table size 17700827, ...
- Notepad++ 运行java(转)
Notepad++ 运行java java, 2013/05/04, 9 replies, 6,007 views 文章目录 Notepad++ for java 安装必须的程序 配置NppExec ...
- linux的8小时差问题解决
下面是同步时间的解决方法: 1.vi /etc/sysconfig/clock #编辑文件 ZONE="Asia/Shanghai" UTC=false #设置为false,硬件时 ...
- 【Java】泛型学习笔记
参考书籍 <Java核心技术:卷1> 泛型, 先睹为快 先通过一个简单的例子说明下Java中泛型的用法: 泛型的基本形式类似于模板, 通过一个类型参数T, 你可以"私人定制&qu ...
- Linq to SQL 中实现模糊查询
list = list.Where(i => i.Name.Contains(empName)).ToList();
- js 数组的一些基本操作
var arr1 = [1,2,3,4,5,6]; arr1[0]; arr1[1]; console.log("长度:"+arr1.length); 一.遍 ...