使用Android进行VR图像处理

  • Source code at GitHub

介绍 VR或360图像,可以在耳机或在像谷歌街景这样的网站上观看是标准的JPG图像。你可以使用简单的Android图形处理技术,通过单独的移动设备或内部运行Android操作系统的360摄像头/手机来修改360幅图像,可以拍摄或拼接360幅图像。 背景 以下是同一幅图像的三幅图。图像都保存为JPG文件。 左边的图像是等矩形模式。这是一个扁平的球形视图。右边的图像是双鱼眼。这是由一个特殊的360相机的两个鱼眼镜头制成的。 当在谷歌Photos、谷歌Maps、Facebook、谷歌Streetview或Flickr等网站上看到等矩形图像时,它将以360或“VR”图像的形式出现。 这些图像也可以在耳机内部观看。 转动你的头将允许你改变图像的观点。这是从Oculus耳机内部的视图。 使用的代码 为了省去将360张图片拼接在一起的麻烦,也不需要花钱买一个专门的360摄像头,我把360张图片样本放在一起,并加载到一个Android模拟器中。 步骤 将无摄像头模板Fork到您自己的私有GitHub repo中——https://github.com/codetricity/no camera-template。克隆您的私有回购到您的本地计算机,并在Android Studio中打开。在Android Studio工具→AVD管理器下,使用以下资源创建AVD: 3GB ram屏幕大小:5 "屏幕分辨率:720x1028系统映像:Nougat 7.1 x86 在Android Studio中打开无摄像头模板。按下运行在Android Studio。进入模拟器的Android app设置,启用存储权限: 在app模拟器上按下“Shutter”键: 如果您的应用程序权限设置正确,您将看到理光THETA图像出现在模拟器屏幕上。如果图像没有出现,请重新检查步骤6。 用adb shell登录AVD,在/sdcard/DCIM/100RICOH/查看文件: 按“Process”测试图像处理: 验证处理文件出现在AVD。把你自己的图像处理代码放到processImage(String thetaPicturePath)方法中,第144行: 挑战1:图像大小 当前的示例代码保存了一个宽400px、高200px的图像。代码在方法getBitmap()中。将其更改为不同的大小。设置为800px * 400px。 挑战#2:改变图像压缩 当前的样本,转换JPEG到PNG格式,并设置质量为50 / 100。你要改变两件事: 修改代码,使其保存的图像,以WEBP格式降低质量25。这将使文件更小。 的兴趣点 该应用程序减少理光THETA图像大小从10.7MB到0.12MB传输通过不稳定的网络。原始图像文件保存在相机中。这个想法是设置一个时间间隔来拍摄1000张照片,每5分钟拍摄一张照片,然后自动传输这些小文件。一个人可以看小的图像,然后决定他们是否想要大的图像。 exiftool对于检查元数据很有用。 元数据 在本例中,将从图像中删除元数据。特别地,ProjectionType没有设置为等矩形。您可以使用exiftool添加元数据以进行测试。 一旦你将ProjectionType设置为等矩形,你就可以在Facebook等360个应用程序中看到图片。请注意,图像的分辨率有意降低,以减少文件大小传输通过不稳定的蜂窝网络在偏远地区。 下一个步骤 你可以在这里获得额外的360 JPG图像和360 MP4视频(需要免费注册)。或者,在Flckr或其他图片共享网站上搜索360张图片或等矩形图片。新的360相机可以存储DNG或RAW格式的图像,其中包含了更多有助于图像处理的信息。免费示例DNG双鱼眼图像在这里(不需要登录)。 历史 2019年6月26日:初版 本文转载于:http://www.diyabc.com/frontweb/news30514.html

你可能感兴趣的:(使用Android进行VR图像处理)