1. 程式人生 > >opencv同時開啟兩個攝像頭採集影象

opencv同時開啟兩個攝像頭採集影象

之前做過雙目相機的標定,需要同時開啟兩個攝像頭同時採集影象,寫過很麻煩每次只能採集一對影象的程式,後來發現waitKey()的使用可以很方便地通過鍵盤輸入採集影象,寫在部落格裡面希望可以給新手一些幫助吧。

#include <iostream>
#include <opencv2/opencv.hpp>

using namespace std;
using namespace cv;


int main()
{

    cv::VideoCapture capl(0);
    cv::VideoCapture capr(1);

    int i = 0;

    cv::Mat src_imgl;
    cv::Mat src_imgr;

    char filename_l[15];
    char filename_r[15];
    while(capl.read(src_imgl) && capr.read(src_imgr))
    {


        
        cv::imshow("src_imgl", src_imgl);
        cv::imshow("src_imgr", src_imgr);
	
        char c = cv::waitKey(1);
        if(c==‘ ’) //按空格採集影象
        {
	    sprintf(filename_l, "img%d.jpg",i);
            imwrite(filename_l, src_imgl);
	    sprintf(filename_r, "right%d.jpg",i++);
            imwrite(filename_r, src_imgr);
        }
        if(c==‘q’ || c=='Q') // 按q退出
        {
            break;
        }
	  

    }

    return 0;
}

需要注意的是攝像頭插入的usb插口位置,在採集之前應該先開啟攝像頭通過遮擋一個攝像頭的方式確定影象的左右和攝像頭的左右是否對應