使用循环和颜色处理改进摄影工作流程
为动作相机和 VR 相机构建专用工作流程
引言
对于专业的摄影工作流程,标准的相机应用程序通常缺乏功能,这阻碍了摄影师探索创意想法。本文展示了如何向基于Android的相机添加功能,使其更适用于水下摄影。这些技术可以适用于大多数VR相机,使用Google的Optical Spherical Camera API,或任何内部运行Android的相机,包括带有相机的手机。
背景
使用防水壳,您可以轻松地在3个大气压的环境中操作相机。相机承受的压力通常不是问题。然而,阳光穿透海洋的光线确实会造成问题,因为海洋会吸收红色的光波。
由于我使用的是可以拍摄360度照片的VR相机,因此无法在水下使用补光灯提供足够的红色光波。为了解决这个问题,我研究了所用基于Android的相机的API。
Using the Code
我首先在陆地上使用API测试调整色温。
在我的例子中,API非常简单,因为我使用了名为theta4j web API的开源第三方库。只需要一行代码。
theta.setOption(Options.COLOR_TEMPERATURE, 10000);
为了在水下触发色温变化,我需要使用防水壳上的按钮。
为了捕捉按钮事件,我使用了一个库。稍微棘手的部分是,我需要将命令放在一个单独的线程中。这对于上面设置色温的例子也是如此。在下面的例子中,线程使用colorExecutor.submit
运行。它使用了新的Java 8 lambda表达式语法。
if (keyCode == KeyReceiver.KEYCODE_MEDIA_RECORD) {
colorExecutor.submit(() -> {
try {
theta.setOption(WHITE_BALANCE, WhiteBalance.COLOR_TEMPERATURE);
} catch (IOException e) {
e.printStackTrace();
}
switch (colorTemperature) {
case 2500 :
colorTemperature = 6500;
notificationLed3Show(LedColor.YELLOW);
try {
theta.setOption(Options.COLOR_TEMPERATURE, 6500);
} catch (IOException e) {
e.printStackTrace();
}
break;
控制LED
我使用的相机没有屏幕。为了显示当前的色彩状态,我正在调整LED的颜色。
关注点
在大多数情况下,标准的软件可以很好地拍摄照片。在具有挑战性的光线和压力条件下,专业的软件会很有帮助。构建软件比我预期的要容易。在RICOH THETA V中拥有完整的Android操作系统是一个很大的优势,因为我可以使用Android Studio和Java。
由于我自己不是潜水员,我意识到与该领域的专业人士交谈非常有价值。我从30分钟的关于潜水员工作流程的讨论中学习到的知识,比我花费数月时间在线研究获得的知识要多得多。
我也得以更多地了解我儿子的工作。
我学到的重要一件事是,不同的环境会导致光线和颜色产生不同的反应。软件可以轻松调整颜色。
目前,下面的测试照片有点偏蓝。但我希望在未来的潜水中看到插件色彩调整的效果。
历史
在开发插件之前,已经进行了一些水下测试拍摄。