位置: 编程技术 - 正文

景深图片的3d显示(opengl)(景深图片的3d显示器)

编辑:rootadmin
=='''效果展示'''==这篇 wiki 介绍一下对景深图片进行3d显示的效果。展现形式为:可以对一张照片中的景物做轻微角度变化的观看,图片中的物体将呈现 3d 效果。具体效果如下:

推荐整理分享景深图片的3d显示(opengl)(景深图片的3d显示器),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:3d景深调到多少效果最好,景深画图,3d景深效果,景深图片的3d显示在哪里,景深图片的3d显示在哪里,3d景深是什么意思,景深图片的3d显示在哪里,景深图片的3d显示在哪里,内容如对您有帮助,希望把文章链接给更多的朋友!

=='''背景与思路介绍'''==以上比较炫的 3d 效果使用我们之前学过的 opengl 进行实现,需要配合带有景深数据的图片使用,下面先浅述实现思路:'''一、背景''' ‘人’根据看到静态图像去理解它的3D结构是一件很容易的事,因为‘人’拥有对图像里面这些物体的先验知识(当然得包含生理和心理效应)。 例如白云在天上,大部分墙壁都是直立的平面,树长在地面,而且树上有树叶,等等。 人看到它的一面,可以联想到它的立体结构。这也是为什么人用一个&#;睛也能“看到”三维世界的原因。 但对于计算机来说,由于投射投影,3D场景投射到2D空间里面,就损失了很多的信息,例如最重要的深度信息。 所以单从单张图像去进行3d显示是很困难的。 现在我们使用的是双摄像头获取了景深信息的图片,以此来弥补深度信息的缺失。并根据这些信息来实现图片的 3d 效果。'''二、效果实现思路''' 拍照的过程是将真实世界中 3维 的信息记录在照片 2维 的存储空间中。 所以照片其实是 3D 空间在 2D 平面(图像传感器)的投影。 虽然同一个投影可能是由无限种可能的3D场景投影产生的,我们要做的是利用已知景深信息对当前画面进行尽可能的还原。(这里有个实际信息量缺失的问题,后面再针对此问题进行处理) 因此,景深照片中的景深信息能够帮助我们对照片上 2维 的数据进行 3维 的重组或还原。 真实3d世界 --记录-> 平面照片 --渲染-> opengl 3d 按照这样的方式进行渲染,就能让平面照片(带景深的)渲染出 3d 效果。 =='''操作步骤'''==以下描述一下渲染的详细步骤:'''一、解析对应数据''' 解析图片数据。 需根据目前不同相机拍摄的不同景深照片,进行对应解析,将像素信息与景深信息分离。 结果如下: [[File:IMG -depthmap.jpg|px]] ps:使用的 ALTEK 景深图片后缀为 raw &#;式,实际存储内容为 yuv。 yuv中,y是由单一数组存储的,而uv则是交错存储的。需转换为对应的 rgb 进行显示。 详细解析代码和原理参见 wiki : [[Imreadyuv introduction|YUV图像的读入和显示]]'''二、渲染纹理以及重构深度信息''' 将提取出的景深信息,与opengl的世界坐标进行映射: 此步骤需要解析出所有需要的景深信息,并根据这些信息,在整个照片的空间坐标中,重组出每个像素所应该对应的深度。 然后在 opengl 中进行映射渲染。 主要流程如下: 1、略去opengl相关初始化代码。 2、向 opengl 中传入景深数据,并通过 shader 进行渲染。 3、传递景深数据,进行三角剖分 使用三角形网&#;对数据体进行构面,分别对x、y、z三维坐标进行空间坐标赋&#;,然后传入矩阵运算。

其中 z 来自于深度信息。

Matrix::operationMM(gMVPMatrix, 0, gViewMatrix, 0, gModelMatrix, 0); Matrix::operationMM(gMVPMatrix, 0, gProjectionMatrix, 0, gMVPMatrix, 0); glUniformMatrix4fv(gMVPMatrixHandle, 1, GL_FALSE, gMVPMatrix); 渲染效果如下: 映射照片为 opengl 纹理。 最后使用 opengl 中的 shader 进行相关渲染。 详细代码细节可参阅各种 opengles2.0 教程。上面有更详细的描述。'''三、模糊掉背景和前景''' 按照真实的视觉效果,当聚焦在中心的物体上时,可对背景和前景做模糊失焦处理,以加深真实感。 这里可以选用高斯模糊或均&#;模糊等。为了提高opengl渲染效率,可以考虑使用shader进行gpu渲染。景深图片的3d显示(opengl)(景深图片的3d显示器)

上一个高斯模板:

'''四、界面互动''' 可增加界面互动,以便用户从多角度进行观察。(代码略,可参阅 opengl 相关教程)'''五、局限性''' 正如前面提到的,因为3d数据包含的信息量其实比2d数据要多,在平面照片中,存储的并不是真实的3d空间中的所有信息。 所以在还原过程中肯定会有信息量的缺失,比如遮盖在一片树叶之后的另一片树叶。 所以在渲染过程中,需要进行一些处理:比如限制图片能够展示的角度,在一定角度范围内,其信息量的缺失不容易体现出来。'''六、扩展''' 利用以上方式,也可以在后期人为给图片添加上景深信息,然后进行显示,效果仍然可以接受。 不过对整幅图片做这种处理无疑是挺麻烦一件事,因此以下效果图纯来自于某二次元宅窝,非本人制作:

顺便一提:opengl 作为一个跨平台的工具,按照以上步骤实现了景深图片的3d渲染功能,就可以让我们能在多种平台上实现此效果。

以上效果图全部来自于网络。

OpenGL学习日记-.1.--混合 混合可以实现很多效果,笔记单纯的记录混合的原理,和混合公式,混合函数的使用。最后分析书中的两个混合代码例子,两个例子结合起来说明了绘

简单一个opengl程序,2D图形移动 很早打算系统的学习一下opengl,但是由于课程以及学习算法占据了时间,一直没能开始,现在这段时间开始弄opengl了,这几天看正在看《Opengl变成指南

gluPerspective的具体含义 OpenGL有两种投影:正射投影(垂直投影)和透视投影。透视投影通过指定一个平截头体来定义视见体的范围,平截头体如下图所示:voidgluPerspective(GLdoubl

标签: 景深图片的3d显示器

本文链接地址:https://www.jiuchutong.com/biancheng/369667.html 转载请保留说明!

上一篇:openGL粒子系统实现(面向对象风格)(opengl立体模型)

下一篇:OpenGL学习日记-2014.1.21--混合(opengl怎么学)

  • 收到个税手续费退费会计分录
  • 递延所得税负债是什么科目
  • 怎么收购股份公司
  • 幼儿园经营支出指什么
  • 劳务公司在异地做项目需要提供当地完税证明
  • 过路费定额发票还能入账吗
  • 印花税申报怎么采集
  • 往来差异一般原因有哪些
  • 小规模纳税人怎样报税
  • 企业所得税纳税调增调减怎么确定
  • 专用发票丢失怎么抵扣
  • 本月扣除上月预缴增值税怎么做会计分录?
  • 应收账款计提坏账后收回
  • 定率征收多缴的企业所得税怎么计算?
  • 税控盘怎么进行升级
  • 教育费附加减免性质代码
  • 建筑公司一般纳税人增值税税率
  • 应收款项包括哪些内容,各自有何特点?
  • 基建工程的各项工作包括
  • 合同取得成本计入当期损益吗
  • 收据怎么写比较规范
  • 一般纳税人进项税额转出会计分录
  • win10系统怎么设置锁屏壁纸
  • win11多任务怎么用
  • 无线网连上却上不了网络
  • 王者荣耀怎么解除关系
  • 利润总额和净利润的区别
  • 方正电脑如何做系统
  • 2021激活windows10
  • 孕妇能吃桂圆吗有什么好处
  • mstore.exe - mstore是什么进程 有什么用
  • 百香果的功效与作用及食用方法果的籽能嚼碎吃吗?
  • 公司的清洁费用是什么科目
  • mac osx10.11
  • 一只猫在花园里英语
  • php __callstatic
  • 【2023亲测可用】JS 获取电脑本地IP 和 电脑网络IP(外网IP|公网IP)
  • echarts 柱状图滚动与gridlayout移动冲突
  • cookie与session的作用和原理
  • c语音进阶
  • 房地产销售未完工产品转完工产品确认的销售收入
  • 汽车抵押贷款会上征信吗
  • 当月增加的房产 要交房产税吗
  • 房地产开发费用最高扣除比例
  • 以前年度多计提折旧
  • 赡养老人专项附加扣除的标准
  • 会议服务费免税吗
  • 为什么开票需要提供开户许可证
  • 取得股息红利所得 个人所得税
  • 收到发票怎么写摘要
  • 一般纳税人销售旧货
  • 建筑公司租赁设备怎么入账
  • 外籍个人是否可以买社保
  • 结构性存款是什么意思是理财
  • 企业职工食堂就餐收费
  • 母公司与子公司税务关系
  • 应交个人所得税借方余额表示什么
  • 民办非企业可以开发票吗
  • 服务类公司有成本吗
  • 空头支票如何处罚
  • 修改mysql配置的两种方法
  • mysql 5.7.24安装
  • MSSQL 数据库同步教程
  • 如何移植操作系统
  • window系统怎么截屏屏幕
  • ssh进入
  • mac个性定制在哪
  • windows 命令行 ftp
  • win10正式版激活码
  • win7系统开机黑屏如何处理
  • win8怎么看电脑wifi密码
  • win10系统日历怎么放在桌面
  • 用dos命令创建用户
  • unity3d怎么控制人物移动
  • jquery操作样式
  • 轻松实现人生理想生日尾数农历
  • androidstudio性能检测工具
  • js中截取字符串的方法
  • jquery map遍历
  • 知道税率怎么算成本
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设