求助,opencv打开双目摄像头失败

K5174 2017-01-27 06:06:34
如代码

#include "opencv2/opencv.hpp"
#include "iostream"
using namespace std;
using namespace cv;

int main()
{
VideoCapture camera1(1);
camera1.set(CAP_PROP_FRAME_WIDTH, 320);
camera1.set(CAP_PROP_FRAME_HEIGHT, 320);
VideoCapture camera0(0);
camera0.set(CAP_PROP_FRAME_WIDTH, 320);
camera0.set(CAP_PROP_FRAME_HEIGHT, 320);

if (!(camera1.isOpened() && camera0.isOpened())) { cout << "打开摄像头或读取失败!" << endl; return -1; }

Mat frame1,frame0;
namedWindow("Left");
namedWindow("Right");
while (1)
{
if (!(camera1.read(frame1) && camera0.read(frame0))) break;
imshow("Left", frame1);
imshow("Right", frame0);

if (waitKey(30) >= 0) break;
}

return 0;
}


我需要打开一个双目摄像头,但是打开的是电脑自带的摄像头和双目中的一个摄像头,如果改成打开标号2和1的摄像头的话根本不能打开2号的,倒序也没有用,有没有大神帮忙解决一下…
...全文
1792 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zjlzf123 2017-12-16
  • 打赏
  • 举报
回复
估计opencv接口不够鲁棒,我遇到这个问题时,尝试将camera1.read(frame1)更改为camera1>>frame1,问题解决,你可以试试看!
C_xiaopanpan1 2017-11-08
  • 打赏
  • 举报
回复
我也遇到这个问题,不知道楼主解决了没有
shiter 2017-02-05
  • 打赏
  • 举报
回复
那估计就是不行了,我印象中opencv打开2里面用的directx?你看下VideoCapture()这个构造函数的源代码就知道了
K5174 2017-02-05
  • 打赏
  • 举报
回复
引用 1 楼 wangyaninglm 的回复:
你这个问题,你描述清楚一下。主要是调试一下看看对应 对象那一块没有获取到东西
你好,就是标号0打开电脑自带的,1打开双目中的一个,2包括后面的打不开;如果禁用掉电脑自带的那就只能用标号0打开双目中的一个,1包括后面的打不开。写了一个判断的函数,打不开就是根本获取不到数据。在论坛上看到有说大概意思是opencv不能打开使用同一根数据线的双目摄像头,但是可以打开两个独立的摄像头,我 试过了也确实是能打开独立的两个。然后看论坛上说可以用directshow配合opencv来打开双目但是觉得配置太麻烦了而且directshow好像不能移植到linux上…
shiter 2017-02-01
  • 打赏
  • 举报
回复
你这个问题,你描述清楚一下。主要是调试一下看看对应 对象那一块没有获取到东西

4,445

社区成员

发帖
与我相关
我的任务
社区描述
图形图像/机器视觉
社区管理员
  • 机器视觉
  • 迪菲赫尔曼
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧