注意

生成的视频没有声音!只有图片序列。
忘了在哪看到的原理,已经找不到出处了,另外结果可能是失败了,显示器刷新率不够,有时间再好好研究

缺点

本文只是演示原理,没有对左右摄像头做相应的变换,两个摄像头的图像可能不在同一个平面,并且带有倾斜角度。
https://blog.csdn.net/weixin_39266208/article/details/121319790中提供了对齐的方法。

原理

使用双目摄像头拍摄图像,然后输出一个mp4文件,交错输出左右摄像头的图片,帧率设置120以上,这样人眼分辨不出来差别,同时看左右摄像头的图片,就有立体感了,要求显示器刷新率要支持到120以上,否则没办法达到预期效果,我用小米6手机播放,感觉还可以。注意摄像头的移动速度,因为摄像头的拍摄速度可能比较低,再受系统性能的影响,如果达不到120fps,相当于把好几秒压缩成1s,看起来会移动的非常快,所以要很缓慢的移动摄像头。

代码

我这里使用的是淘宝买的usb摄像头模组。

# video2 video3是插上usb线之后多出来的,使用的时候使用video2,video3的出现是为了支持某些额外的东西,暂时还没有研究怎么使用,当前代码用不上
ls /dev/video*
video0  video1  video2  video3v4l2-ctl --list-formats-ext -d 2
ioctl: VIDIOC_ENUM_FMTType: Video Capture[0]: 'MJPG' (Motion-JPEG, compressed)Size: Discrete 640x240Interval: Discrete 0.017s (60.000 fps)Size: Discrete 320x240Interval: Discrete 0.017s (60.000 fps)Size: Discrete 640x480Interval: Discrete 0.017s (60.000 fps)Size: Discrete 1280x720Interval: Discrete 0.017s (60.000 fps)Size: Discrete 960x960Interval: Discrete 0.017s (60.000 fps)Size: Discrete 1264x960Interval: Discrete 0.017s (60.000 fps)Size: Discrete 1280x960Interval: Discrete 0.017s (60.000 fps)Size: Discrete 1280x480Interval: Discrete 0.017s (60.000 fps)Size: Discrete 2560x720Interval: Discrete 0.017s (60.000 fps)Size: Discrete 2560x960Interval: Discrete 0.017s (60.000 fps)[1]: 'YUYV' (YUYV 4:2:2)Size: Discrete 640x240Interval: Discrete 0.100s (10.000 fps)Size: Discrete 320x240Interval: Discrete 0.100s (10.000 fps)Size: Discrete 640x480Interval: Discrete 0.100s (10.000 fps)Size: Discrete 1280x720Interval: Discrete 0.200s (5.000 fps)Size: Discrete 960x960Interval: Discrete 0.100s (10.000 fps)Size: Discrete 1264x960Interval: Discrete 0.100s (10.000 fps)Size: Discrete 1280x960Interval: Discrete 0.100s (10.000 fps)Size: Discrete 1280x480Interval: Discrete 0.100s (10.000 fps)Size: Discrete 2560x720Interval: Discrete 0.200s (5.000 fps)Size: Discrete 2560x960Interval: Discrete 0.200s (5.000 fps)

我这里使用了motion-jpeg的2560x960分辨率,速率可达60fps,实际好像只能达到25左右,2560是左右两张图像拼接在一起的,每张图片1280宽。

import cv2cap = cv2.VideoCapture(2)
# 我的摄像头 设置宽高,帧率会自动跟着变
cap.set(cv2.CAP_PROP_FRAME_WIDTH,2560)
cap.set(cv2.CAP_PROP_FRAME_HEIGHT, 960)fcc = cv2.VideoWriter_fourcc('M','J','P','G')
# 这里不设置默认会使用YUYV,速率会为5fps
cap.set(cv2.CAP_PROP_FOURCC, fcc)w = cv2.VideoWriter("/tmp/t.mp4", fcc,120, (1280, 960))print(cap.get(cv2.CAP_PROP_FPS), "fps")count = 0
# 生成5s视频
while count < 600:ret, frame = cap.read()l = frame[:,0:1280,:]r = frame[:,1280:,:]#print(l.shape,r.shape)w.write(l)w.write(r)count +=1#cv2.imshow('frame', l)#c = cv2.waitKey(1)#cv2.imshow('frame',r)#c = cv2.waitKey(1)# if c == 27:#    breakcap.release()
w.release()
#cv2.destroyAllWindows()

使用opencv和双目摄像头制作裸眼3d视频相关推荐

  1. 4k裸眼3d视频传输方案小结

    方案概述: 4k分辨率概念:http://www.expreview.com/32100.html 本文项目主要实施的分辨率为3840*2160: hdmi版本与所传输分辨率帧率的限制: 由于其他限制 ...

  2. 成都太古里,溢出屏幕的裸眼3d

    在成都太古里和春熙路交界处有一块裸眼3D屏,早在十月份的时候就凭借一段酷炫真实的外星飞碟裸眼3d视频登上热搜,刷爆朋友圈,让本就是打卡圣地的太古里再一次上升成为一个网红打卡必经之地. 数字平原有幸参与 ...

  3. 基于android的裸眼3d,午诺裸眼3D原理其实并不复杂

    午诺裸眼3D原理其实并不复杂 其实同样是裸眼3D手机,可能其中含有的技术却大不相同.午诺P8采用的是国内领先3D光学厂商康得新提供的柱状光栅技术,屏幕通过特殊处理给左右眼的图像是不一样的,消费者面对手 ...

  4. 震撼的视觉感,裸眼3d成为企业宣传最优选择

    震撼的视觉感,裸眼3d成为企业宣传最优选择 近几年科技发展迅速,软件硬件设施不断完善,3D技术也有了提升.从上了微博热榜的太古里裸眼3d视频,再到全国各地使用的裸眼3D大屏,在艺术创意与硬件素质的双重 ...

  5. 7 Papers Radios | 机器人「造孩子」;谷歌裸眼3D全息视频聊天技术公开

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 来源丨机器之心 作者丨杜伟.楚航.罗若天 本周重要论文包括能「造孩子」的机器人以及谷歌公开的裸眼3D全 ...

  6. 索尼ELF-SR2解析:27英寸、裸眼3D、4K够不够

    自首款产品发布2年之后,索尼本周发布了新款Spatial Reality Display系列裸眼3D屏幕:ELF-SR2,预计5月发售. 相比于上一代ELF-SR1,ELF-SR2最主要的升级是尺寸从 ...

  7. 裸眼3D将是未来移动端的显示的主要技术

    为什么本人会谈这个, 因为近几天本人成功实现了眼球追踪,不是特别的精确, 但是面对裸眼3D的实现足够了,只要摄像头可以捕捉到你的眼睛就可以了 最后就是实现双眼投射,那么问题来了,投影如何调整自己的方向 ...

  8. 谷歌最新黑科技:裸眼3D视频通话,宛如真人面对面!Jeff Dean:魔镜啊魔镜

    梦晨 明敏 发自 凹非寺 量子位 报道 | 公众号 QbitAI 受疫情影响停办一年的谷歌I/O大会回来了,这一次是全程线上举办. 在会上,谷歌公布了一个秘密开发5年多的黑科技: 这个名为Starli ...

  9. 怎么设置ppt页面的长度和宽度_在PPT中将照片变裸眼3D效果怎样操作?分享技巧,帮你快速实现...

    PPT的使用相信大家都不陌生,使用最多的就是制作PPT对工作进行汇报,对新项目进行展开讨论.其实在PPT中还可以设计海报,制作高逼格封面以及将照片变为3D效果等偏设计类的操作.今天将以如何把照片变为3 ...

  10. 裸眼3D全攻略3:拍摄3D—瞳距、镜距、视角偏转与空间感

    http://sd89.blog.163.com/blog/static/356041322014112532958728/ 3D图片的拍摄,与平面有着全新的不同要求,那就是空间感的表现. 简单来说, ...

最新文章

  1. 热门专业没那么难,文科生打开统计学的正确方式!
  2. C++ BUILDER 消息处理的深入探索
  3. 2019-11-09 正定矩阵的一些常见概念
  4. 南方日报专访 | 网易云信沈青松: 企业上云正热,PaaS将迎来爆发
  5. Imagination
  6. Javascript Array对象 sort()方法,记忆方法,方法扩展
  7. java判断long 大于0_JAVA的一道习题:找出五个大于Long.MAX_VALUE的素数
  8. .Net快速获取网络文本文件最后一段文字-小应用
  9. python-pip : Depends: python-setuptools (= 0.6c1) 问题
  10. Navicat for my sql 数据结构导出(制作数据字典)
  11. 支持全系列阵列卡的专用服务器PE工具
  12. c# md5加密算法实例
  13. C++实践参考——动物这样叫
  14. 最好用的WIN7WIN10激活工具
  15. 导入Model为啥没有addAttribute()方法???
  16. 【力扣】买卖股票的最佳时机 II
  17. linux下php添加imap模块
  18. 小白的RFID宿舍智能锁
  19. hexo的next主题换到Yelee(Yilia)
  20. 【自己写全景】TreeJs实现全景图

热门文章

  1. redisRDB持久化中dir路径配置问题
  2. java线程死锁例子_java死锁例子 - 无情小白龙的个人空间 - OSCHINA - 中文开源技术交流社区...
  3. 调研14国,芒鞋踏破,这位大学教授给区块链从业者如下建议
  4. FPGA-VGA驱动Color Bar显示
  5. 服务器操作系统怎么设置密码,服务器操作系统怎么设置密码
  6. 微软阿根廷服务器解锁,XBOX阿根廷服购买教程
  7. 手动生成linux中Qt的moc文件,手动生成Qt的moc文件的方法
  8. MAVEN 修改为阿里数据源
  9. Matplotlib画热力图---heatmap(逐行注释)
  10. 永洪科技怎么样_「永洪科技」