如何使用 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 ...
随机推荐
- 利用vanitygen生成比特币个性地址的教程
比特币怎么生成地址?大家都知道比特币地址都是以1开头的一串乱码,很多朋友会新建过一排地址然后在里面挑选,下面小编为大家分享下比特币生成个性地址方法. 其实就是使用vanitygen软件来生成个性化 ...
- Django_中国化
需求: 要求Django显示中文,并使用北京时间 问题原因: Django具有相当的国际化,已经内置了多种语言,汉语当然也不落下,Django默认的时间是utc时间,也就是说相隔八个时区的中国,显示北 ...
- C语言学习之选择排序
上一篇文章中讲C语言排序中的比较常见的(交换)冒泡排序,那么这篇文章也将以新手个人的经历来讲同样比较常见而实用的数组排序之选择排序. 选择排序,从字面上看是通过选择来进行排序.其实它的用法就是通过选择 ...
- CentOS之7与6的区别
前言 centos7与6之间最大的差别就是初始化技术的不同,7采用的初始化技术是Systemd,并行的运行方式,除了这一点之外,服务启动.开机启动文件.网络命令方面等等,都说6有所不同.让我们先来了解 ...
- awk练习题-v参数
[xxxx.com]a=123bsas=sa2asd=a12ip=ip123[ooo.com]asd12=1223ip=ip123xas=123[xxoo.cn]asas=123sip=xs12213 ...
- 华硕笔记本电脑Win10改Win7设置U盘启动
华硕笔记本电脑Win10改Win7设置U盘启动 尝试开机按ESC选择前面没有UEFI项的USB启动: 1,在BIOS设置里advanced菜单,把 Lgeacy USB support选择为enabl ...
- Asp.net Core 入门实战 2.请求流程
Asp.Net Core 是开源,跨平台,模块化,快速而简单的Web框架. Asp.net Core官网的一个源码合集,方便一次性Clone,喜欢的(Star),本系列持续更新,也可以通过我的网站访问 ...
- Python学习笔记(二):字典
字典由多个键及与其对应的值构成的键值对构成,字典中键唯一,值不唯一. 1)dict 函数: >>>items=[('name','lilei'),('age',12)] >&g ...
- 用Elasticsearch构建电商搜索平台,一个极有代表性的基础技术架构和算法实践案例[转]
原文链接:http://mp.weixin.qq.com/s?__biz=MzA5NzkxMzg1Nw==&mid=2653160642&idx=1&sn=608f4e6883 ...
- POJ 1222 EXTENDED LIGHTS OUT [高斯消元XOR]
题意: $5*6$网格里有一些灯告诉你一开始开关状态,按一盏灯会改变它及其上下左右的状态,问最后全熄灭需要按那些灯,保证有解 经典问题 一盏灯最多会被按一次,并且有很明显的异或性质 一个灯作为一个方程 ...