求救,help
opencv吧
全部回复
仅看楼主
level 1
123wangjh120 楼主
新人报道,求大神们多多指教。问题如下:如何用opencv同时打开三个摄像头,并把三个摄像头捕捉到的图片显示输出。(本人在研究双目摄像头相关问题,三个摄像头分别是电脑内置摄像头、双目摄像机。经检测三个摄像头都是完好的,可以每次打开其中一个。)
本人用的代码(调试无错误,运行结果总是提示:Can not open 1 camera):
//包含头文件
#include <iostream>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <opencv2/core/core.hpp>
//使用命名空间
using namespace std;
using namespace cv; //VideoCapture cap(2);//VideoCapture类用法:1.VideoCapture(const string& filename)打开视频文件;2.VideoCapture(int device)打开设备。
//if (!cap.isOpened())//检测VideoCapture类是否打开成功
// {
// return -1;
// }
//
// Mat mFrame; //定义变量类
// bool bStop = false; //定义控制变量
// while (!bStop)
// {
// cap >> mFrame;
// imshow("camera", mFrame);//显示
// if (waitKey(30) >= 0)//判断用户按键
// {
// bStop = true;
// }
int main()
{
VideoCapture capture0(0),capture1(1),capture2(2);
//capture0.open(0);
//capture1.open(1);
//capture2.open(2);
if (!capture0.isOpened())//检测VideoCapture类是否打开成功
{
cout<< "Can not open 0 camera" << endl;
return -1;
}
if (!capture1.isOpened())//检测VideoCapture类是否打开成功
{
cout<< "Can not open 1 camera" << endl;
return -1;
}
if (!capture2.isOpened())//检测VideoCapture类是否打开成功
{
cout<< "Can not open 2 camera" << endl;
return -1;
}
Mat mframe=cvLoadImage("right.png", -1);
Mat mframe0,mframe1,mframe2; //waitKey();
cvNamedWindow("ImageShow初始:",1);
cvNamedWindow("ImageShow0:",1);
cvNamedWindow("ImageShow1:",1);
cvNamedWindow("ImageShow2:",1); imshow ("ImageShow初始:",mframe);
bool bStop = false; //定义控制变量
while (!bStop)
{
capture0>>mframe0;
capture1>>mframe1;
capture2>>mframe2; imshow ("ImageShow0:",mframe0);
imshow ("ImageShow1:",mframe1);
imshow ("ImageShow2:",mframe2); if (waitKey(30) >= 0)//判断用户按键
{
bStop = true;
}
}
}
2018年02月01日 01点02分 1
1