0

实现长曝光时间的最有效方法是什么?基本上,Android camera2 的 API 允许手动更改曝光时间、ISO 和其他相机参数,但受设备限制。例如。华为 P20 Lite 有 1s 的限制,但是,内置的应用程序允许使用 8s 曝光。我想做一些类似的,但使用软件模拟长时间曝光和捕捉突发(一系列照片[ex = 1s]在结果图像中累积的间隔很小)(天文摄影预计需要16秒甚至24秒)。可能,我应该:

  • 使用连拍或重复请求拍摄 n 张照片
  • 在 onImageAvailableListener 中,将 byte[] 数组(捕获结果)复制到 RenderScript.Allocation 集合中
  • 像这个例子一样使用 reduce rs,将转换输出分配添加到 .dng 文件中:
static void addintAccum(int *accum, int val) {
  *accum += val;
}

它让理智?我已经做了一些基本上在位图上操作的试验,但它看起来很糟糕(每 n 张照片的 w、x 像素的每个 int8 颜色相加)并且需要大量时间来计算每个像素。不幸的是,由于版本冲突(可能版本 30 不存在),我使用 API 级别 30 和渲染脚本目标 API 24 生成带有无效导入的 ScriptC 类(androidx.renderscript.* 而不是 android.renderscript)。

    defaultConfig {
        applicationId "robertr.smartcamera"
        minSdkVersion 21
        targetSdkVersion 30
        versionCode 1
        versionName "1.0"
        renderscriptTargetApi 24
        renderscriptSupportModeEnabled true

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
    }
4

0 回答 0