鱼C论坛

 找回密码
 立即注册
查看: 3121|回复: 2

Opencv问题

[复制链接]
发表于 2021-6-28 10:54:23 | 显示全部楼层 |阅读模式
20鱼币
1624848732808(1).jpg
我买了一个opencv的双目摄像头 同时启动,可是运行以后我的笔记本摄像头一直在闪烁,无法启动双目摄像头
  1. #if 1//运行前改成1
  2. #include<opencv2/opencv.hpp>
  3. #include<stdlib.h>
  4. #include <opencv2/highgui/highgui_c.h>
  5. using namespace cv;
  6. using namespace std;

  7. int main()
  8. {
  9.     Mat frame1, frame2;
  10.     VideoCapture cap1, cap2;

  11.     int cont = 0;
  12.     while (frame1.rows < 2)
  13.     {
  14.         cap1.open(700);
  15.         cap1.set(CAP_PROP_FOURCC, 'GPJM');
  16.         cap1.set(CAP_PROP_FRAME_WIDTH, 320);
  17.         cap1.set(CAP_PROP_FRAME_HEIGHT, 240);
  18.         cont = 0;
  19.         while (frame1.rows < 2 && cont < 5)
  20.         {
  21.             cap1 >> frame1;
  22.             cont++;
  23.         }
  24.     }
  25.     while (frame2.rows < 2)
  26.     {
  27.         cap2.open(701);
  28.         cap2.set(CAP_PROP_FOURCC, 'GPJM');
  29.         cap2.set(CAP_PROP_FRAME_WIDTH, 320);
  30.         cap2.set(CAP_PROP_FRAME_HEIGHT, 240);
  31.         cont = 0;
  32.         while (frame2.rows < 2 && cont < 5)
  33.         {
  34.             cap2 >> frame2;
  35.             cont++;
  36.         }
  37.     }
  38.     while (true)
  39.     {
  40.         cap1 >> frame1;
  41.         cap2 >> frame2;

  42.             cap1.open(1); //打开摄像头
  43.             cap2.open(1); //打开摄像头
  44.     //cap.open("rtsp://root:000000@169.254.246.218/axis-media/media.amp");
  45.     if (!cap1.isOpened()&& !cap2.isOpened())//如果视频不能正常打开则返回
  46.         return 0;
  47.         cvWaitKey(30);
  48.         
  49.         imshow("cap1", frame1);
  50.         imshow("cap2", frame2);

  51.     }
  52.     return 0;
  53. }


  54. #endif
复制代码



附上能启动一个的代码
  1. //#if 1//运行前改成1
  2. //#include<opencv2/opencv.hpp>
  3. //#include<stdlib.h>
  4. //#include <opencv2/highgui/highgui_c.h>
  5. //using namespace cv;
  6. //using namespace std;
  7. //
  8. //int main()
  9. //{
  10. //    VideoCapture cap;
  11. //    cap.open(1); //打开摄像头
  12. //    //cap.open("rtsp://root:000000@169.254.246.218/axis-media/media.amp");
  13. //    if (!cap.isOpened())//如果视频不能正常打开则返回
  14. //        return 0;
  15. //    cvWaitKey(30);
  16. //    Mat frame;//用于保存每一帧图像
  17. //    cap >> frame;
  18. //
  19. //    imshow("hello world", frame);
  20. //    cvWaitKey(300);
  21. //    //system("C:"Program Files (x86)""CHUSEI 3D Webcam""CHUSEI 3D Webcam.exe"");
  22. //
  23. //    char buf[30] = { 0 }; //保存路径变量
  24. //
  25. //    while (1)
  26. //    {
  27. //        cap >> frame;          //等价于cap.read(frame);
  28. //        if (frame.empty())     //如果某帧为空则退出循环
  29. //            break;
  30. //
  31. //        imshow("【双目原始视图】", frame);    //显示双目原始图像  原始分辨率为 640*480
  32. //
  33. //        Mat DoubleImage;
  34. //
  35. //        resize(frame, DoubleImage, Size(640, 240), (0, 0), (0, 0), INTER_AREA);   // 纵向分辨率缩小一半
  36. //        imshow("【双目缩小视图】", DoubleImage);  //显示图像
  37. //
  38. //
  39. //        Mat        LeftImage = DoubleImage(Rect(0, 0, 320, 240));      //分割得到左视图
  40. //        Mat RightImage = DoubleImage(Rect(320, 0, 320, 240));   //分割得到右视图
  41. //
  42. //        imshow("【左视图】", LeftImage);         //显示左视图
  43. //        imshow("【右视图】", RightImage);        //显示右视图
  44. //
  45. //        char c = cvWaitKey(30);
  46. //        if (c == 27)//Esc键退出
  47. //        {
  48. //            break;
  49. //        }
  50. //
  51. //        line(frame, cvPoint(200, 250), cvPoint(100, 400), cvScalar(255, 255, 0), 2);
  52. //        line(frame, cvPoint(400, 250), cvPoint(500, 400), cvScalar(255, 255, 0), 2);
  53. //        imshow("hello world", frame);    //显示双目原始图像  原始分辨率为 640*480
  54. //        waitKey(1);
  55. //        Mat dst;
  56. //        cvtColor(frame, dst, COLOR_BGR2GRAY);
  57. //        GaussianBlur(dst, dst, Size(7, 7), 1.5, 1.5);
  58. //        Canny(dst, dst, 0, 30, 3);//边缘检测
  59. //        imshow("读取视频", dst);
  60. //        waitKey(1);//延时1ms
  61. //    }
  62. //    cap.release();//释放资源
  63. //}
  64. //
  65. //
  66. //#endif
复制代码

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-6-28 19:19:57 | 显示全部楼层
是不是这里的问题?
  1. if (!cap1.isOpened()&& !cap2.isOpened())//如果视频不能正常打开则返回
  2.         return 0;
  3.         cvWaitKey(30);
  4.         
  5.         imshow("cap1", frame1);
  6.         imshow("cap2", frame2);

  7.     }
复制代码

都return 0 了,后面咋还有代码呢
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-6-28 19:49:26 | 显示全部楼层
qiuyouzhi 发表于 2021-6-28 19:19
是不是这里的问题?

都return 0 了,后面咋还有代码呢

我下午重新写了一个就是发现一个超出长宽的范围导致读取不正常,但还是想知道这个为什么会唤出电脑摄像头而不是自带的双目摄像头
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-27 18:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表