opencv+c++调用摄像头并且拍照自动生成图片存放在本地

#include <opencv2/core.hpp> 
#include <opencv2/imgcodecs.hpp> 
#include <opencv2/highgui.hpp>
#include <opencv2/opencv.hpp> 
#include <iostream> 

using namespace cv; 
using namespace std;
 
int main() 
{ 
 //两个相机同时打开,初始化并分配内存以从摄像机加载视频流,分辨率为320*240、1280*720(延迟太大)、720*480 
 //initialize and allocate memory to load the video stream from camera 
 VideoCapture camera0(0);
 camera0.set(CAP_PROP_FRAME_WIDTH, 720); 
 camera0.set(CAP_PROP_FRAME_HEIGHT, 480); 
 
 VideoCapture camera1(1);
 camera1.set(CAP_PROP_FRAME_WIDTH, 720); 
 camera1.set(CAP_PROP_FRAME_HEIGHT, 480);
  
 if (!camera0.isOpened()) return 1; 
 if (!camera1.isOpened()) return 1;

 int a = 1; 
 int f = 1; 
 while (true) { 
 //依次抓取和检索视频的每个帧 
 //grab and retrieve each frames of the video sequentially 
  Mat3b frame0; 
  camera0 >> frame0; 
  Mat3b frame1; 
  camera1 >> frame1; 
  
  //顺时针旋转摄像头180° 
  //flip(frame1, frame1, -1); 
  //flip(frame0, frame0, -1); 
 
  imshow("Video0", frame0);
  imshow("Video1", frame1);
  //std::cout << frame1.rows() << std::endl; 
  //wait for 40 milliseconds 
 
  int c = waitKey(20); 
  //exit the loop if user press "Esc" key (ASCII value of "Esc" is 27)
 
  if (27 == char(c)) break; 
 
  int b = waitKey(20);
  if (32 == char(b)) { 
     imwrite("C:\\Users\\11815\\Desktop\\calib_example1\\" + to_string(a++) + ".tif", frame1); 
  } 
  
  int d = waitKey(20); 
  if (13 == char(d)) 
   { 
   imwrite("C:\\Users\\11815\\Desktop\\calib_example2\\" + to_string(f++) + ".tif", frame0); 
   } 
 } 
 return 0; 
}

效果:
在这里插入图片描述

  • 2
    点赞
  • 48
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

高高呀~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值