目录

  • 双目摄像头
  • 双目摄像头输入
  • 左右图像分割

双目摄像头

博主打算做双目测距的实验,因此需要用到双目摄像头。使用过下述几种类型的双目摄像头:

1.集成两个摄像头的模组(单个USB插口,左右图像单独输出)

这类摄像头插入后会显示两个摄像头输入,但可能是由于共用同一个USB传输的原因,有时候同时打开两个摄像头后,另外一个摄像头的画面会显示不出来。
如果要同时输入两个单独的摄像头,最好是使用不同型号的摄像头。

2.两个相同的单目摄像头(两个USB插口,左右图像单独输出)


两个单独的摄像头分别通过各自的USB输入就不会出现上述问题,但是两摄像头的同步性可能不是很好(对于普通实验其实影响不大),且博主之后打算做多目的实验,USB接口有限(使用hub同样会出现上述的问题),所以经过一段时间的使用之后,最后是选择使用下一种类型的双目摄像头。

3.集成两个摄像头的模组(两个USB插口,左右图像合成输出)

这类摄像头和第一类的区别在于左右图像在模组中已经进行了拼接合成,最后传输出来的是单张合成的图像,在串口中也只是显示一个摄像头。例如,博主购买的这款单个摄像头输出1280x960的图像,通过合成后USB输出2560x960的合成图像。这类摄像头解决了上述两种双目摄像头的缺点,但是图像在opencv中处理时,需要事先进行图像分割。

双目摄像头输入

对于第一和第二类双目摄像头,在程序中都需要单独输入两个摄像头图像。

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>using namespace cv;int main()
{VideoCapture cap1(0),cap2(1);//define two capture for two cameraswhile (1){Mat frame1, frame2;cap1 >> frame1;cap2 >> frame2;imshow("leftImage", frame1);//left imageimshow("rightImage", frame2);//right imagewaitKey(33);}return 0;
}

ps:使用VideoCapture类定义时,括号内数字为摄像头串口的编号,通常是0,1,-1,2,第二个摄像头可能需要多试几下。

左右图像分割

对于第三类摄像头,串口输入的是左右摄像头拼接合成后的图像,在opencv中进行图像处理之前,应将合成图像分割成左右两张图像。

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>using namespace cv;int main()
{VideoCapture cap(0);while (1){Mat frame;cap >> frame;resize(frame, frame, Size(1280, 480));//set size of imageMat leftImage, rightImage;leftImage = frame(Rect(0, 0, frame.size().width / 2, frame.size().height));//split left imagerightImage = frame(Rect(frame.size().width / 2, 0, frame.size().width / 2, frame.size().height));//split right imageimshow("leftImage", leftImage);//left imageimshow("rightImage", rightImage);//right imagewaitKey(33);}return 0;
}

ps: 1.源图像使用resize()调整图像大小,需要包含imgproc.hpp头文件。
2.Rect(x,y,width,height)四个参数分别是起点横坐标、起点纵坐标、宽度和高度,早期使用容易犯错认为后两个参数是终点横纵坐标。

源图像:

分割后图像:

第一次写博客,如有错误,欢迎指正!

【OpenCV】双目摄像头输入及左右图像分割相关推荐

  1. opencv 双目摄像头标定

    我用的是opencv官方的例程,花了一天把代码大致注释了下,但是双目感觉好难,很多地方都不懂,都是在大佬们的博客找的资料 下面是对例程使用的说明 http://blog.csdn.net/t24755 ...

  2. opencv 双目摄像头拍照(分别左右镜头拍照)

    准备一个usb线的双目同步摄像头: 运行环境是vc2015,opencv3.1. 将左右两个摄像头拍到的图片分别保存起来. 1)适用条件 双目同步摄像头(两个镜头,共用一个设备ID) 使用语言:C++ ...

  3. OpenCV 打开双目摄像头(python版)

    前言 本文主要介绍在OpenCV用使用双目摄像头,包括:打开单目摄像头.设置摄像头参数.拍照.录制视频. 环境:编程语言:Python3        主要依赖库:OpenCV3.x 或 OpenCV ...

  4. Python+OpenCV+pyQt5录制双目摄像头视频

    #Python+OpenCV+pyQt5录制双目摄像头视频 ##起因 说起来录制视频,我们可能有很多的软件,但是比较坑的是,好像很少的软件支持能够同时录制两个摄像头的视频,于是我们用python自己写 ...

  5. Android OpenCV使用4_双目摄像头双开两个预览界面,并获取当前帧图片

    本篇博客其实跟OpenCV也没什么多大关系,因为是同一个项目,博客就顺溜着写了. 在自研设备开发过程中,在项目研发过程中碰到了双目摄像头双开(一个普通摄像头,一个红外摄像头)并获取当前帧的这么一个需求 ...

  6. opencv python打开双目摄像头

    在python下使用opencv打开摄像头的函数为:cv2.VideoCapture(index) #index为摄像头标号 默认情况电脑自带摄像头索引为0,外置为1.2.3-,但是我的没有自带摄像头 ...

  7. opencv打开双目摄像头

    最近朋友请教了我一些双目摄像头的问题,小编在这里经过查阅资料给出一段程序,,有人说用directshow来实现,有人说直接可以用opencv读取多个摄像头.那么,既然opencv能实现,为什么还要装其 ...

  8. 使用opencv标定双目摄像头

    在https://blog.csdn.net/weixin_39266208/article/details/120917840中,制作了一个9x12的棋盘图片,打印到A4纸上,每个格子长度22mm, ...

  9. 双目测距代码 python opencv 利用双目摄像头拍照,测距

    环境:ubuntu14.04 软件:opencv3.3 +pycharm 好久没有写博客了,手都感觉好生疏,最近一直在研究工控机,水下机器人等,好不容易闲下来,没办法呀,继续前行吧,前面一直说双目测距 ...

最新文章

  1. 用gdb调试mpi程序的一些心得
  2. 愚蠢的CNN,换个马甲就认不出猫!但,这病能治 | ICLR Oral
  3. 【加州理工】什么是模仿学习(Imitation Learning(模仿学习), 这62页ppt带你了解进展...
  4. SaaS服务在未来云计算中该如何发展
  5. java设计模式简述
  6. 利用“多说”制作留言板、评论系统
  7. php 如何设置后台,phpcms怎么重新设置后台网址
  8. Ubuntu系统opencv4.4安装常见问题 找不到 feature2d/test/test_detectors_regression.impl.hpp 文件
  9. 企业级Ngnix基于域名的配置_server
  10. javabean更新到mysql_javabean连mysql 数据库更新问题
  11. oracle sql core目录,oracle11g数据库常见故障处理.ppt
  12. 计算机二级修改并应用基本简历模板,如何通过Office模板轻松快捷创建简历
  13. mysql 纯真ip 导出dat_纯真IP数据库(qqwry.dat)转换成最新的IP数据库格式(ipwry.dat)
  14. 小米笔记本装了linux后u盘启动不了,小米笔记本bios设置u盘启动教程
  15. linux中排序程序,linux排序命令
  16. 2021/10/15 考试总结
  17. 京东数科前端岗位面历
  18. html5与css3新增特性精讲
  19. win7下安装配置Tomcat 7.0
  20. php mysql 中文表名_php如何查询mysql表名字

热门文章

  1. 【3】道听途说的一点点儿
  2. 数字化时代,企业为什么需要进行数据资产管理?
  3. 你离黑客的距离,就差这20个神器了 (一) 转
  4. 利用Anaconda安装python3.6环境
  5. at91sam9260ek开发板linux移植文档,AT91SAM9260EK开发板 Linux 移植 移植 文档
  6. FLIR相机项目属性配置lib文件备份
  7. java 几种垃圾回收器,关于java:7种jvm垃圾回收器这次全部搞懂
  8. Python-推导式
  9. Tomcat假死原因排查
  10. Java Column ‘xxx‘ in where clause is ambiguous问题解决