使用Android进行VR图像处理

目录

介绍

背景

使用代码

步骤

挑战#1:图像大小

挑战#2:改变图像压缩

兴趣点

元数据


介绍

可在耳机或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存储库中——https://github.com/codetricity/no-camera-template
     
  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)中可见。请注意,图像分辨率有意降低,以减小文件大小,以便在偏远地区的不稳定蜂窝网络上传输。

 

原文地址:https://www.codeproject.com/Articles/5160716/VR-Image-Processing-with-Android

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值