opencv双摄像头采集图像(可用作双目视觉的标定图片制作)
2018-02-26 16:02
681 查看
环境:opencv2.4.9 + vs2013
代码:#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv/cv.h>
using namespace std;
using namespace cv;
int main()
{
VideoCapture capture, capture1, capture2;
capture.open(0); capture1.open(1); capture2.open(2);
// Read options
//read_options(argc, argv, capture);
// Init camera
if (!capture.isOpened())
{
cout << "capture device 0 failed to open!" << endl;
return 1;
}
if (!capture1.isOpened())
{
cout << "capture device 1 failed to open!" << endl;
return 1;
}
if (!capture2.isOpened())
{
cout << "capture device 2 failed to open!" << endl;
return 1;
}
// Register mouse callback to draw the tracking box
namedWindow("0", CV_WINDOW_AUTOSIZE);
namedWindow("1", CV_WINDOW_AUTOSIZE);
namedWindow("2", CV_WINDOW_AUTOSIZE);
char filename_l[15];
char filename_r[15];
int i = 0;
Mat frame;
Mat frame1;
Mat frame2;
while (capture.read(frame) && capture1.read(frame1) && capture2.read(frame2))
{
imshow("0", frame);
imshow("1", frame1);
imshow("2", frame2);
char c = cv::waitKey(1);
if (cvWaitKey(10) == 'c') //按c采集图像
{
sprintf(filename_l, "left%d.jpg", i);
imwrite(filename_l, frame);
sprintf(filename_r, "right%d.jpg", i++);
imwrite(filename_r, frame1);
}
if (cvWaitKey(33) == 'q') { break; }
}
waitKey();
return 0;
}说明:可通过按键C控制截取帧
代码:#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv/cv.h>
using namespace std;
using namespace cv;
int main()
{
VideoCapture capture, capture1, capture2;
capture.open(0); capture1.open(1); capture2.open(2);
// Read options
//read_options(argc, argv, capture);
// Init camera
if (!capture.isOpened())
{
cout << "capture device 0 failed to open!" << endl;
return 1;
}
if (!capture1.isOpened())
{
cout << "capture device 1 failed to open!" << endl;
return 1;
}
if (!capture2.isOpened())
{
cout << "capture device 2 failed to open!" << endl;
return 1;
}
// Register mouse callback to draw the tracking box
namedWindow("0", CV_WINDOW_AUTOSIZE);
namedWindow("1", CV_WINDOW_AUTOSIZE);
namedWindow("2", CV_WINDOW_AUTOSIZE);
char filename_l[15];
char filename_r[15];
int i = 0;
Mat frame;
Mat frame1;
Mat frame2;
while (capture.read(frame) && capture1.read(frame1) && capture2.read(frame2))
{
imshow("0", frame);
imshow("1", frame1);
imshow("2", frame2);
char c = cv::waitKey(1);
if (cvWaitKey(10) == 'c') //按c采集图像
{
sprintf(filename_l, "left%d.jpg", i);
imwrite(filename_l, frame);
sprintf(filename_r, "right%d.jpg", i++);
imwrite(filename_r, frame1);
}
if (cvWaitKey(33) == 'q') { break; }
}
waitKey();
return 0;
}说明:可通过按键C控制截取帧
相关文章推荐
- [IOS OpenCV]摄像头采集图片用 CreateIplImageFromUIImage 转换后图像被旋转、变形解决方案
- 双目视觉学习笔记(一)--qtcreator下使用opencv读取并存储双摄像头图像
- Qt5.3里使用OpenCV库采集摄像头图像保存为图片和视频
- opencv+directshow实现4个摄像头同步采集图像
- 【计算机视觉】 opencv双目视觉标定、匹配和测量 (附代码)
- 【Xilinx-Petalinux学习】-06-OpenCV通过USB摄像头采集图像。
- Opencv调用摄像头采集图像
- opencv摄像头获取连续图像(二): 双目获取图像
- 基于matlab标定数据,使用opencv实现双目立体摄像头的标定(源代码)
- OpenCV 立体视觉详细解析(一)---摄像头标定
- OpenCV摄像头采集图像问题及DirectShow的使用
- opencv调用摄像头采集图像+配合canny边缘检测
- opencv与两个摄像头实现双目标定与测距
- opencv摄像头采集图像彩色图转换成灰度图
- 【计算机视觉】 双目相机标定以及立体测距原理及OpenCV实现
- opencv 开启摄像头实时采集图像
- 使用opencv标定双目摄像头
- 在Ubuntu16.04安装OpenCV3.1并实现USB摄像头图像采集
- ROS 下利用 usb_cam 读取图像、opencv 图像、摄像头的标定
- 基于matlab标定数据,使用opencv实现双目立体摄像头的标定(源代码)