日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

同时读取两个USB摄像头采集

發布時間:2024/9/27 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 同时读取两个USB摄像头采集 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.??OpenCV:VideoCapture同時打開兩個攝像頭

#include <opencv2/opencv.hpp> #include<iostream>using namespace cv; using namespace std;int main() {//initialize and allocate memory to load the video stream from cameraVideoCapture camera0(1);camera0.set(CAP_PROP_FRAME_WIDTH,320);camera0.set(CAP_PROP_FRAME_HEIGHT,240);VideoCapture camera1(0);camera1.set(CAP_PROP_FRAME_WIDTH,320);camera1.set(CAP_PROP_FRAME_HEIGHT,240);if( !camera0.isOpened() ) return 1;if( !camera1.isOpened() ) return 1;while(true) {//grab and retrieve each frames of the video sequentiallyMat3b frame0;camera0 >> frame0;Mat3b frame1;camera1 >> frame1;imshow("Video0", frame0);imshow("Video1", frame1);//std::cout << frame1.rows() << std::endl;//wait for 40 millisecondsint c = waitKey(20);//exit the loop if user press "Esc" key (ASCII value of "Esc" is 27)if(27 == char(c)) break;}return 0;}

[注]:
1. ?分辨率為320*240,能夠正常顯示,分辨率太高,只有一個攝像頭能正常顯示,另一個顯示灰度圖。原因是USB的帶寬有限。

2. 攝像頭的序號在opencv中是采用降序的形式,才能正確讀取多個攝像頭,否則就不能。

3. VideoCapture類有兩種用法,一種是VideoCapture(const string& filename)用來打開視頻文件,一種是VideoCapture(int device)用來打開設備。


2.?OpenCV VideoCapture 設置和獲取攝像頭參數

適用于VideoCapture打開的攝像頭

VideoCapture capture(0);

設置攝像頭參數?不要隨意修改

capture.set(CV_CAP_PROP_FRAME_WIDTH, 1080);//寬度 capture.set(CV_CAP_PROP_FRAME_HEIGHT, 960);//高度 capture.set(CV_CAP_PROP_FPS, 30);//幀率 幀/秒 capture.set(CV_CAP_PROP_BRIGHTNESS, 1);//亮度 1 capture.set(CV_CAP_PROP_CONTRAST,40);//對比度 40 capture.set(CV_CAP_PROP_SATURATION, 50);//飽和度 50 capture.set(CV_CAP_PROP_HUE, 50);//色調 50 capture.set(CV_CAP_PROP_EXPOSURE, 50);//曝光 50

獲取攝像頭參數

capture.get(CV_CAP_PROP_FRAME_WIDTH); capture.get(CV_CAP_PROP_FRAME_HEIGHT); capture.get(CV_CAP_PROP_FPS); capture.get(CV_CAP_PROP_BRIGHTNESS); capture.get(CV_CAP_PROP_CONTRAST); capture.get(CV_CAP_PROP_SATURATION); capture.get(CV_CAP_PROP_HUE); capture.get(CV_CAP_PROP_EXPOSURE);

源代碼

/** @brief OpenCV攝像頭和視頻屬性操作 @author @copyright - @version 1.0 @data @note - */ #include <iostream> #include "opencv2/opencv.hpp"using namespace std; using namespace cv;const string window_name = "用戶界面";#define USE_CAMERA //#define USE_VIDEOint main() {Mat frame;double brightness = 0; //亮度double contrast = 0; //對比度double saturation = 0; //飽和度double hue = 0; //色調double gain = 0; //增益double exposure = 0; //曝光double white_balance = 0; //白平衡double pos_msec = 0; //當前視頻位置(ms)double pos_frame = 0; //從0開始下一幀的索引double pos_avi_ratio = 0; //視頻中的相對位置(范圍為0.0到1.0)double frame_width = 0; //視頻幀的像素寬度double frame_height = 0; //視頻幀的像素高度double fps = 0; //幀速率double frame_count = 0; //視頻總幀數double video_duration = 0.00; //視頻時長double format = 0; //格式#ifdef USE_VIDEOconst string file_name = "201910915314.avi";VideoCapture capture(file_name);frame_width = capture.get(cv::CAP_PROP_FRAME_WIDTH);frame_height = capture.get(cv::CAP_PROP_FRAME_HEIGHT);fps = capture.get(cv::CAP_PROP_FPS);frame_count = capture.get(cv::CAP_PROP_FRAME_COUNT);format = capture.get(cv::CAP_PROP_FORMAT);pos_avi_ratio = capture.get(cv::CAP_PROP_POS_AVI_RATIO);video_duration = frame_count / fps;cout << "---------------------------------------------" << endl;cout << "視頻中的相對位置(范圍為0.0到1.0):" << pos_avi_ratio << endl;cout << "視頻幀的像素寬度:" << frame_width << endl;cout << "視頻幀的像素高度:" << frame_height << endl;cout << "錄制視頻的幀速率(幀/秒):" << fps << endl;cout << "視頻文件總幀數:" << frame_count << endl;cout << "圖像的格式:" << format << endl;cout << "視頻時長:" << video_duration << endl;cout << "---------------------------------------------" << endl; #endif // USE_VIDEO#ifdef USE_CAMERAVideoCapture capture(0);brightness = capture.get(cv::CAP_PROP_BRIGHTNESS);contrast= capture.get(cv::CAP_PROP_CONTRAST);saturation = capture.get(cv::CAP_PROP_SATURATION);hue = capture.get(cv::CAP_PROP_HUE);gain = capture.get(cv::CAP_PROP_GAIN);exposure = capture.get(cv::CAP_PROP_EXPOSURE);white_balance = capture.get(cv::CAP_PROP_WHITE_BALANCE_BLUE_U);std::cout << "---------------------------------------------" << endl;std::cout << "攝像頭亮度:" << brightness << endl;std::cout << "攝像頭對比度:" << contrast << endl;std::cout << "攝像頭飽和度:" << saturation << endl;std::cout << "攝像頭色調:" << hue << endl;std::cout << "攝像頭增益:" << gain << endl;std::cout << "攝像頭曝光度:" << exposure << endl;std::cout << "攝像頭白平衡:" << white_balance << endl;std::cout << "---------------------------------------------" << endl; #endif // USE_CAMERAnamedWindow(window_name,WINDOW_AUTOSIZE);while (capture.isOpened()){capture >> frame;#ifdef USE_VIDEOpos_msec = capture.get(cv::CAP_PROP_POS_MSEC);pos_frame = capture.get(cv::CAP_PROP_POS_FRAMES);pos_avi_ratio = capture.get(cv::CAP_PROP_POS_AVI_RATIO);cout << "---------------------------------------------" << endl;cout << "視頻文件中當前位置(ms):" << pos_msec << endl;cout << "從0開始下一幀的索引:" << pos_frame << endl;cout << "視頻中的相對位置(范圍為0.0到1.0):" << pos_avi_ratio << endl;cout << "---------------------------------------------" << endl; #endif // USE_VIDEOimshow(window_name, frame);if (waitKey(60)==27){break;}}capture.release();destroyAllWindows();return 0; }

3.?opencv 出現 “VIDIOC_STREAMON: No space left on device” 錯誤 解決方法

現象:

今天在用opencv python 打開雙攝像頭時報一個錯誤: VIDIOC_STREAMON: No space left on device,設備上沒有空間

1. 之前用opencv-3.2.0 版本沒有報這個問題,現在使用新版本opencv-3.4.2 就出現這個問題。

2. 把攝像頭的分辨率改小到320*240后可以正常使用雙攝像頭。

原因是:單個攝像頭占用了USB的全部帶寬。

解決方法:

在打開攝像頭時添加一個語句:

capture1.set(cv2.CAP_PROP_FOURCC, cv2.VideoWriter_fourcc(*"MJPG"))
?

代碼:

capture1 = cv2.VideoCapture(2) capture2 = cv2.VideoCapture(1)capture1.set(cv2.CAP_PROP_FOURCC, cv2.VideoWriter_fourcc(*"MJPG")) capture2.set(cv2.CAP_PROP_FOURCC, cv2.VideoWriter_fourcc(*"MJPG")) # setting resolution capture1.set(cv2.CAP_PROP_FRAME_WIDTH, 640) capture1.set(cv2.CAP_PROP_FRAME_HEIGHT, 480) capture2.set(cv2.CAP_PROP_FRAME_WIDTH, 640) capture2.set(cv2.CAP_PROP_FRAME_HEIGHT, 480) if (capture.isOpened())capture.release(); //decide whether capture is already opened; if so,close itcapture.open(0); //open the default cameracapture.set(CAP_PROP_FOURCC, VideoWriter::fourcc('M', 'J', 'P', 'G')) ;capture.set(CAP_PROP_FPS, 60);capture.set(CAP_PROP_FRAME_WIDTH, ImgWidth);capture.set(CAP_PROP_FRAME_HEIGHT, ImgHeight);

總結

以上是生活随笔為你收集整理的同时读取两个USB摄像头采集的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 自拍偷拍视频在线 | 日本成人一二三区 | 日本免费网站在线观看 | caopeng视频| 日本人妻丰满熟妇久久久久久 | 黄色成年视频 | 在线日韩亚洲 | 少妇被按摩师摸高潮了 | 99久久精品免费视频 | 成人综合站 | 日本不卡高字幕在线2019 | 日韩一区av在线 | 精品无码人妻少妇久久久久久 | a级在线观看 | japanese国产| 大黑人交交护士xxxxhd | 国产伦理精品 | 亚洲欧美精品 | 黄色成人免费观看 | 夜夜草网站 | 裸体美女免费视频网站 | 毛片视频网 | 韩国无码一区二区三区精品 | 国产农村妇女毛片精品久久麻豆 | 亚洲婷婷综合网 | 毛片库 | 国产人妖ts重口系列网站观看 | 国产精品一区二区自拍 | 双性懵懂美人被强制调教 | 麻豆影视在线 | 国产免费播放 | 能在线看的av | 日本人和亚洲人zjzjhd | ,亚洲人成毛片在线播放 | 国内自拍第二页 | 日韩在线你懂的 | 久久精品—区二区三区舞蹈 | 中文精品在线 | 黄色在线观看av | 九草av| 高潮久久久 | 日韩在线第一 | 天天色天天射天天干 | 极品国产91在线网站 | 国精产品一品二品国精品69xx | 免费成人黄色片 | 91超碰免费| 免费一级黄色 | 中国一级特黄录像播放 | 美女视频国产 | 日韩视频一区二区在线观看 | 91大神网址| 色丁香六月 | 亚洲视频综合网 | www.日本在线观看 | 波多野结衣绝顶大高潮 | 人人澡人人添 | 免费国产a级片 | 已满十八岁免费观看全集动漫 | 久久久久无码国产精品一区 | 国产美女极度色诱视频www | 狂野欧美性猛交免费视频 | 亚洲国产精品成人久久蜜臀 | 91极品国产 | 成人欧美一区二区三区黑人一 | 69免费视频 | 国产成人看片 | 亚洲老妇色熟女老太 | 农民工hdxxxx性中国 | av高清免费 | 天天干天天操天天操 | 男人天堂五月天 | 一区二区三区日韩欧美 | 粗了大了 整进去好爽视频 日本女优中文字幕 | 中文字幕在线视频网站 | 综合婷婷久久 | 精品国产网站 | 台湾性dvd性色av | 美女黄色片网站 | 久久在线视频 | 日韩美女视频网站 | av一区二区三区 | 久久草国产 | 在线成人看片 | 自拍三级 | 午夜噜噜 | 7mav视频 | 国精产品99永久一区一区 | 天天草av| 国产成年人免费视频 | 粉色视频免费 | 有码中文字幕 | 国产女人在线 | 国产精品无码白浆高潮 | 波多野结衣91 | 亚洲不卡av一区二区 | 日本精品一区视频 | 国产一区中文字幕 | 亚洲经典在线 |