博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用Android进行VR图像处理
阅读量:3527 次
发布时间:2019-05-20

本文共 1459 字,大约阅读时间需要 4 分钟。

目录


介绍

可在耳机或Google StreetView等网站上观看的VR360图像是标准JPG图像。您可以使用简单的Android图形处理技术,使用单独的移动设备修改360图像,或者在运行Android操作系统的360相机/手机上内部修改360图像,并可以将360幅图像拼接在一起。

背景

以下是同一图像的三个视图。图像全部保存为JPG文件。

左边的图像处于equirectangular模式。它是一个扁平的球形视图。右边的图像是双鱼眼。这是由特殊360相机的两个鱼眼镜头制成的。  

当在Google照片,谷歌地图,Facebook,谷歌街景或Flickr等网站上查看equirectangular图像时,它将显示为360“VR”图像。  

图像也可以在耳机内查看。

转头可以让你改变图像的视图。这是Oculus耳机内部的视图。

使用代码

为了让你省去把360张图片拼接在一起的麻烦,或者省去买一台专门的360相机的费用,我把360张图片的样本放在一起,然后把它们加载到一个Android模拟器中。

步骤

  1. 将无相机模板(no-camera-template) fork到您自己的私有GitHub存储库中——
     
  2. 将您的私人仓库克隆到本地计算机,然后在Android Studio中打开。
     
  3. Android Studio工具”→“AVD管理器下,使用以下资源创建AVD
    • 3GB RAM
    • 屏幕尺寸:5“
    • 屏幕分辨率:720x1028
    • 系统映像:Nougat 7.1 x86
  4. Android Studio中打开无相机模板(no-camera-template)
  5. Android Studio上按运行
  6. 进入模拟器的Android应用程序设置并启用存储权限
  7. 按应用程序模拟器上的快门
  8. 如果您的应用程序权限设置正确,您将看到RICOH THETA图像出现在模拟器屏幕上。如果未显示图像,请重新检查步骤6
  9. 使用adb shell登录AVD,查看/sdcard/DCIM/100RICOH/中的文件
     
  10. 处理以测试图像处理
  11. 验证出现在AVD中的已处理的文件
     
  12. 将您自己的图像处理代码放在processImage(String thetaPicturePath) 方法的第144

 

挑战#1:图像大小

当前示例代码保存400px宽,200px高的图像。代码位于getBitmap()方法中。将其更改为其他大小。使其成为800px×400px

挑战#2:改变图像压缩

当前样本,将JPEG转换为PNG格式,并将质量设置为100中的50。您将改变两件事:

  • 修改代码,以便将图像保存为WEBP格式
  • 将质量降低到25。这将使文件更小。

兴趣点

该应用程序将RICOH THETA图像尺寸从10.7MB减少到0.12MB,以便在不稳定的网络上传输。原始图像文件保留在相机中。我们的想法是建立一个延时拍摄1000张照片,每5分钟拍摄一张,并自动传输小文件。一个人可以查看小图像并确定他们是否想要更大的图像。

exiftool对于检查元数据很有用。

元数据

在此示例中,元数据被剥离出图像。特别是,ProjectionType未设置为equirectangular。您可以使用exiftool添加元数据以进行测试。

ProjectionType设置为equirectangular后,图像将在360应用程序(如Facebook)中可见。请注意,图像分辨率有意降低,以减小文件大小,以便在偏远地区的不稳定蜂窝网络上传输。

 

原文地址:

转载地址:http://hpzhj.baihongyu.com/

你可能感兴趣的文章
Java基础入门 Calendar类
查看>>
Java基础入门 DateFormat类
查看>>
Java基础入门 Window类及Panel类
查看>>
Java基础入门 AWT事件处理
查看>>
Java基础入门 鼠标事件
查看>>
Java基础入门 键盘事件
查看>>
Java基础入门 GridLayout
查看>>
JavaEE Bean的两种常用作用域 singleton(单例)和prototype(原型)
查看>>
MySQL 数据库索引
查看>>
JavaEE Spring与MyBatis的整合之传统DAO方式整合(教材学习笔记)
查看>>
JavaEE MyBatis与Spring的整合——基于mapper接口方式开发(教材学习笔记)
查看>>
JavaWeb 使用Cookie实现——显示用户上次访问时间(教材学习笔记)
查看>>
Omap138开发板下以uboot2012.04.01为例分析uboot执行(五)
查看>>
Omap138开发板下以uboot2012.04.01为例分析uboot执行(六)
查看>>
Omap138开发板下以uboot2012.04.01为例分析uboot执行(七)
查看>>
Omap138开发板下以uboot2012.04.01为例分析uboot执行(八)
查看>>
中国大学MOOC—陆军工程大学数据结构MOOC习题集(2018秋)7-3 中位数
查看>>
Java发送邮件 注册成功发送邮件
查看>>
Mybatis的简单使用(增删改查),解决数据库字段名和实体类映射属性名不一致的问题
查看>>
Mybatis配置log4j文件 分页查询(limit,rowBounds)
查看>>