|
20鱼币
我买了一个opencv的双目摄像头 同时启动,可是运行以后我的笔记本摄像头一直在闪烁,无法启动双目摄像头
- #if 1//运行前改成1
- #include<opencv2/opencv.hpp>
- #include<stdlib.h>
- #include <opencv2/highgui/highgui_c.h>
- using namespace cv;
- using namespace std;
- int main()
- {
- Mat frame1, frame2;
- VideoCapture cap1, cap2;
- int cont = 0;
- while (frame1.rows < 2)
- {
- cap1.open(700);
- cap1.set(CAP_PROP_FOURCC, 'GPJM');
- cap1.set(CAP_PROP_FRAME_WIDTH, 320);
- cap1.set(CAP_PROP_FRAME_HEIGHT, 240);
- cont = 0;
- while (frame1.rows < 2 && cont < 5)
- {
- cap1 >> frame1;
- cont++;
- }
- }
- while (frame2.rows < 2)
- {
- cap2.open(701);
- cap2.set(CAP_PROP_FOURCC, 'GPJM');
- cap2.set(CAP_PROP_FRAME_WIDTH, 320);
- cap2.set(CAP_PROP_FRAME_HEIGHT, 240);
- cont = 0;
- while (frame2.rows < 2 && cont < 5)
- {
- cap2 >> frame2;
- cont++;
- }
- }
- while (true)
- {
- cap1 >> frame1;
- cap2 >> frame2;
- cap1.open(1); //打开摄像头
- cap2.open(1); //打开摄像头
- //cap.open("rtsp://root:000000@169.254.246.218/axis-media/media.amp");
- if (!cap1.isOpened()&& !cap2.isOpened())//如果视频不能正常打开则返回
- return 0;
- cvWaitKey(30);
-
- imshow("cap1", frame1);
- imshow("cap2", frame2);
- }
- return 0;
- }
- #endif
复制代码
附上能启动一个的代码
- //#if 1//运行前改成1
- //#include<opencv2/opencv.hpp>
- //#include<stdlib.h>
- //#include <opencv2/highgui/highgui_c.h>
- //using namespace cv;
- //using namespace std;
- //
- //int main()
- //{
- // VideoCapture cap;
- // cap.open(1); //打开摄像头
- // //cap.open("rtsp://root:000000@169.254.246.218/axis-media/media.amp");
- // if (!cap.isOpened())//如果视频不能正常打开则返回
- // return 0;
- // cvWaitKey(30);
- // Mat frame;//用于保存每一帧图像
- // cap >> frame;
- //
- // imshow("hello world", frame);
- // cvWaitKey(300);
- // //system("C:"Program Files (x86)""CHUSEI 3D Webcam""CHUSEI 3D Webcam.exe"");
- //
- // char buf[30] = { 0 }; //保存路径变量
- //
- // while (1)
- // {
- // cap >> frame; //等价于cap.read(frame);
- // if (frame.empty()) //如果某帧为空则退出循环
- // break;
- //
- // imshow("【双目原始视图】", frame); //显示双目原始图像 原始分辨率为 640*480
- //
- // Mat DoubleImage;
- //
- // resize(frame, DoubleImage, Size(640, 240), (0, 0), (0, 0), INTER_AREA); // 纵向分辨率缩小一半
- // imshow("【双目缩小视图】", DoubleImage); //显示图像
- //
- //
- // Mat LeftImage = DoubleImage(Rect(0, 0, 320, 240)); //分割得到左视图
- // Mat RightImage = DoubleImage(Rect(320, 0, 320, 240)); //分割得到右视图
- //
- // imshow("【左视图】", LeftImage); //显示左视图
- // imshow("【右视图】", RightImage); //显示右视图
- //
- // char c = cvWaitKey(30);
- // if (c == 27)//Esc键退出
- // {
- // break;
- // }
- //
- // line(frame, cvPoint(200, 250), cvPoint(100, 400), cvScalar(255, 255, 0), 2);
- // line(frame, cvPoint(400, 250), cvPoint(500, 400), cvScalar(255, 255, 0), 2);
- // imshow("hello world", frame); //显示双目原始图像 原始分辨率为 640*480
- // waitKey(1);
- // Mat dst;
- // cvtColor(frame, dst, COLOR_BGR2GRAY);
- // GaussianBlur(dst, dst, Size(7, 7), 1.5, 1.5);
- // Canny(dst, dst, 0, 30, 3);//边缘检测
- // imshow("读取视频", dst);
- // waitKey(1);//延时1ms
- // }
- // cap.release();//释放资源
- //}
- //
- //
- //#endif
复制代码 |
|