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

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

  1. #include "include/opencv2/opencv.hpp"
  2. #include <iostream>
  3. using namespace std;
  4. using namespace cv;
  5. int main(int argc, char *argv[])
  6. {
  7. #define 第一个摄像头 0
  8. #define 第二个摄像头 1
  9. #define 第三个摄像头 2
  10. #define Esc 27
  11. //#define 轮廓检测
  12. //#define 灰度化
  13. #define 旋转90
  14. cv::VideoCapture capture;
  15. capture.open(第一个摄像头);
  16. if(!capture.isOpened())
  17. {
  18. return;
  19. }
  20. Mat frame;
  21. #ifdef 轮廓检测
  22. Mat cannyDst;
  23. #endif
  24. // capture.set(CV_CAP_PROP_FRAME_WIDTH, 1280);
  25. // capture.set(CV_CAP_PROP_FRAME_HEIGHT, 720);
  26. // capture.set(CV_CAP_PROP_FRAME_WIDTH, 640);
  27. // capture.set(CV_CAP_PROP_FRAME_HEIGHT, 480);
  28. // capture.set(CAP_PROP_FRAME_WIDTH,320);
  29. // capture.set(CAP_PROP_FRAME_HEIGHT,240);
  30. // capture.set(CAP_PROP_EXPOSURE,10);//设置曝光率
  31. // qDebug()<<capture.get(CV_CAP_PROP_FRAME_WIDTH)<<"x"<<capture.get(CV_CAP_PROP_FRAME_HEIGHT);
  32. double FPS, T;
  33. while(true)
  34. {
  35. T = (double)cv::getTickCount();
  36. capture >> frame;
  37. if(frame.empty())
  38. break;
  39. T = ((double)cv::getTickCount() - T) / cv::getTickFrequency();
  40. FPS = 1.0 / T;
  41. putText(frame, "FPS:"+std::to_string(FPS) , Point(30, 80), FONT_HERSHEY_TRIPLEX ,2, cvScalar(0, 0, 255, 0));//int(frame.rows*0.9)
  42. // qDebug()<<frame.cols<<"x"<<frame.rows;
  43. #ifdef 旋转90
  44. cv::transpose(frame,frame);
  45. flip(frame, frame, 1);
  46. #endif
  47. #ifdef 灰度化
  48. cv::cvtColor(frame, frame, CV_BGR2GRAY);
  49. #endif
  50. #ifdef 轮廓检测
  51. cv::Canny(frame, cannyDst, 0, 50, 3);
  52. cv::imshow("摄像头",cannyDst);
  53. #else
  54. cv::imshow("摄像头",frame);
  55. #endif
  56. //退出循环
  57. if (waitKey(1) == Esc)
  58. {
  59. break;
  60. }
  61. }
  62. }

如何使用 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. Altium designer知识总结

    原理图库文件 =原理图元件库 .schlibPCB库文件=封装库.pcblib 集成库=原理图库文件+封装库 .intlib

  2. DS18B20温度传感器知识点总结

    2018-01-1818:20:48 感觉自己最近有点凌乱,一个很简单的问题都能困扰自己很久.以前能很好使用和调试的DS18B20温度传感器,今天愣是搞了很久,妈卖批. 仅仅一个上拉电阻就困扰了我很久 ...

  3. linkin大话面向对象--组合

    继承是实现类重用的重要手段,但是它有一个最大的坏处:破坏封装.相比之下,组合也是实现类重用的重要方式,但是采用组合方式实现类重用则能提供更好的封装性.比如人有手一样,在人的类中增加一个手的属性. 何时 ...

  4. cJSON使用

    cJSON是使用C语言编写的   关于JSON数据的   编解码库,使用方便简单 编译时注意后面要跟-lm参数,否则编译会报错 解析JSON数据包流程: 1.调用cJSON_Parse()函数,解析J ...

  5. win10的系统下怎么设置网页的字体变大

    对于 EDGE 浏览器: 点击右上角的设置图标(三个小点)--缩放,点击 + 号放大字体.   本回答由提问者推荐

  6. Tomcat就是这么简单

    什么是Tomcat Tomcat简单的说就是一个运行JAVA的网络服务器,底层是Socket的一个程序,它也是JSP和Serlvet的一个容器. 为什么我们需要用到Tomcat 如果你学过html,c ...

  7. python中的进程池

    1.进程池的概念 python中,进程池内部会维护一个进程序列.当需要时,程序会去进程池中获取一个进程. 如果进程池序列中没有可供使用的进程,那么程序就会等待,直到进程池中有可用进程为止. 2.进程池 ...

  8. Apache自带的rotatelogs实现日志轮转

    用Apache自带的rotatelogs程序处理apache生成的日志自动截断重新生成,rotatelogs是一个配合Apache管道日志功能使用的简单程序.设置方法如下: 编辑Apache的主配置文 ...

  9. HttpURLConnection用法

    在SDK中的URLConnection链接Servlet的问题 1.URL的请求分类GET和POST GET请求可以获取页面静态的值,参数放URL后,传给Serverlct POST的参数是存放于ht ...

  10. Effective Java 第三版——31.使用限定通配符来增加API的灵活性

    Tips <Effective Java, Third Edition>一书英文版已经出版,这本书的第二版想必很多人都读过,号称Java四大名著之一,不过第二版2009年出版,到现在已经将 ...