下面是opencv官方文档中的一个例子,
演示了如何打开相机,获取图片,对图片进行处理
main函数也不需要输入参数,配置好环境直接就可以运行
把处理函数进行修改,就可以实现不同的功能

/* OpenCV Application Tracing support demo. */
#include <iostream>#include <opencv2/core.hpp>
#include <opencv2/imgproc.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/core/utils/trace.hpp>using namespace cv;
using namespace std;static void process_frame(const cv::UMat& frame)
{CV_TRACE_FUNCTION(); // OpenCV Trace macro for functionimshow("Live", frame);UMat gray, processed;cv::cvtColor(frame, gray, COLOR_BGR2GRAY);Canny(gray, processed, 32, 64, 3);imshow("Processed", processed);
}int main(int argc, char** argv)
{CV_TRACE_FUNCTION();cv::CommandLineParser parser(argc, argv,"{help h ? |     | help message}""{n        | 10000 | number of frames to process }""{@video   | 0   | video filename or cameraID }");if (parser.has("help")){parser.printMessage();return 0;}VideoCapture capture;std::string video = parser.get<string>("@video");if (video.size() == 1 && isdigit(video[0]))capture.open(parser.get<int>("@video"));else;// capture.open(samples::findFileOrKeep(video));  // keep GStreamer pipelinesint nframes = 0;if (capture.isOpened()){nframes = (int)capture.get(CAP_PROP_FRAME_COUNT);cout << "Video " << video <<": width=" << capture.get(CAP_PROP_FRAME_WIDTH) <<", height=" << capture.get(CAP_PROP_FRAME_HEIGHT) <<", nframes=" << nframes << endl;}else{cout << "Could not initialize video capturing...\n";return -1;}int N = parser.get<int>("n");if (nframes > 0 && N > nframes)N = nframes;cout << "Start processing..." << endl<< "Press ESC key to terminate" << endl;UMat frame;for (int i = 0; N > 0 ? (i < N) : true; i++){CV_TRACE_REGION("FRAME"); // OpenCV Trace macro for named "scope" region{CV_TRACE_REGION("read");capture.read(frame);if (frame.empty()){cerr << "Can't capture frame: " << i << std::endl;break;}// OpenCV Trace macro for NEXT named region in the same C++ scope// Previous "read" region will be marked complete on this line.// Use this to eliminate unnecessary curly braces.CV_TRACE_REGION_NEXT("process");process_frame(frame);CV_TRACE_REGION_NEXT("delay");if (waitKey(1) == 27/*ESC*/)break;}}return 0;
}

opencv打开相机实时采集与处理相关推荐

  1. android opencv 获取小图在大图的坐标_Android开发—基于OpenCV实现相机实时图像识别跟踪...

    利用OpenCV实现实时图像识别和图像跟踪 图像识别 什么是图像识别 图像识别,是指利用计算机对图像进行处理.分析和理解,以识别各种不同模式的目标和对像的技术.根据观测到的图像,对其中的物体分辨其类别 ...

  2. OpenCV打开相机,调整窗口大小位置

    OpenCV打开相机,调整窗口大小位置 import cv2cap = cv2.VideoCapture(0) cv2.namedWindow('test_cam',cv2.WINDOW_NORMAL ...

  3. SDI相机实时采集处理DSP系统 目标跟踪

    1.系统平台介绍 HD-SDI相机通过75Ω同轴电缆接入到HD-SDI分配器输入端口,如图所示.HD-SDI分配器有两个HD-SDI输出端口,其中一路输出通过同轴电缆线连接到目标跟踪处理板上的BNC接 ...

  4. OpenCV打开相机

    #include<opencv2/opencv.hpp> using namespace cv; int main() {//1.从摄像头读入视频VideoCapture cap(0);/ ...

  5. 『Halcon与C#混合编程』010_相机实时采集并显示(或循环显示)

            1.首先在halcon通过相机助手生成以下代码 * Image Acquisition 01: Code generated by Image Acquisition 01 open_ ...

  6. opencv打开相机获取图像并保存

    #include<opencv2/opencv.hpp> #include<iostream>using namespace cv; using namespace std;M ...

  7. 使用opencv打开相机——python

    import cv2 as cvdef video_demo():# 0是代表摄像头编号,只有一个的话默认为0capture = cv.VideoCapture(0)while (True):# 调用 ...

  8. MFC+Halcon实现相机的实时采集+保存采集图片

    前言 我们在Halcon上可以很容易的实现连接相机与实时采集图片的操作,利用电脑自带的"DirectShow"相机执行文件可以实现实时显示相机的采集效果与拍照,现在我们利用halc ...

  9. Yolov5进阶之一摄像头实时采集识别

    当yolov5 安装成功后,(如果想快速安装可以看之前帖子),第一步是熟悉相应的采集过程,最简单的是图片,然后是视频,然后是实时采集,具体过程只需更改yolov5 master 里的 detect文件 ...

最新文章

  1. Linux配置vlan网关
  2. java 自动封装_自动补全的java封装
  3. git push 操作代码回退
  4. java 反射 orm_Java-反射机制简介
  5. iOS---iPad开发及iPad特有的特技
  6. Java 类型转换
  7. Cortex-M3-栏目-文章来源
  8. post 表单中常见的四种表单请求方式
  9. Git回滚操作的总结
  10. petshop4.0 详解之五(PetShop之业务逻辑层设计)[转]
  11. Python3 反转一个单链表
  12. Eureka 简介和使用
  13. linux两台服务器 同一个地址_【网工玩Linux】搭建开源多运营商(ISP)链路负载均衡器...
  14. java 执行oracle命令_利用oracle存储过程执行操作系统命令
  15. Python数据分析:pandas中Dataframe的groupby与索引
  16. Linux ubuntu基本知识
  17. 解决方案:Android开发基于rtmp视频直播
  18. FFT算法实现——python
  19. python类之乌龟吃鱼示例
  20. 什么是嵌入式开发?嵌入式培训学哪些?

热门文章

  1. 从JSON数据中取出相关数据
  2. 【Based Android】Android Sensor感应器介绍(二)线程中刷新UI 创建一个android测力计...
  3. vPower系列- 前言
  4. 面试必备杀技:SQL查询专项训练!
  5. 卷进大厂系列之LeetCode刷题笔记:反转链表(简单)
  6. 零基础Java学习之初级项目实践(客户信息管理软件-附源码)
  7. jupyter配置r
  8. Excel如何快速将科学计数法数字变成正常形式
  9. Transformer和自注意力机制Self-Attention详解和时间复杂度计算+Image Transformer简介
  10. 服务端关闭session的重要性