#include <iostream>
#include <opencv2/opencv.hpp>
#include <fstream>
#include <stdio.h>
using namespace std;
using namespace cv;
int main()
{
char c = 0;
VideoCapture capture(0);
Mat cam ;
int i, j = 0;
char filename[10];
while (capture.read(cam)) //循环读取摄像画面帧capture >> cam
{
int w, h ;
w= cam.cols; //获取相机画面宽高
h= cam.rows;
imshow("cam",cam);
Rect rect0(0, 0, w/2, h); //(x,y,width,height)定义矩形框截取
Mat caml = cam(rect0); //截取左摄像头画面
Rect rect1(w/2, 0, w/2, h);
Mat camr = cam(rect1); //截取右半边
c = cvWaitKey(10);
if(c == 'c') //按c键采集图像
{
sprintf(filename, "left%d.jpg",i++);
imwrite(filename, caml);
sprintf(filename, "right%d.jpg",j++);
imwrite(filename, camr);
cout<<"capture ok!"<<endl; //每次截取成功打印一次,图片保存在工程的编译目录下
}
c = cvWaitKey(10);
if (c == 'q')//按q键退出 ,27为Esc键
{
break;
}
}
return 0;
}
打开双目摄像头,连续截取并分割为左右画面进行保存
猜你喜欢
转载自blog.csdn.net/MoonShapedPool/article/details/83105526
今日推荐
周排行