【问题标题】:FCam - low light / HDR photosFCam - 低光/HDR照片
【发布时间】:2011-06-13 03:27:35
【问题描述】:

我正在使用 FCam 拍照,现在无需修改,图片与智能手机相机相当。 FCam 宣传 HDR 和低光性能,但我没有看到任何在拍照时如何使用它的示例。

如何拍摄 HDR 照片?根据我使用单反相机的经验,您通常会拍摄 3 张照片,1 张下方,1 张上方,以及 1 张正确曝光的场景。

由于我要拍摄很多照片,我应该如何将这些像​​素融合在一起?平均水平?

沃尔特

【问题讨论】:

  • 您正在寻找 HDRCapture 源代码?
  • 是的,这会有所帮助。其次,如果我不直接保存为 JPEG,如何批量处理 36,000 多个文件?

标签: c++ image maemo n900


【解决方案1】:

FCam 项目页面包括一个完整的相机应用程序 - FCamera,请查看FCam Download Page, last item,它对于“HDR 取景器”只是将长/短曝光图像平均在一起,而对于“HDR Capture”,它会自动记录一连串适当的-曝光的镜头。请参阅来源中的src/CameraThread.cpp,我不确定引用该内容是否合适,但您会在CameraThread::run() 中找到这两篇文章。

它不会为您平均 HDR 图像,而是将它们记录为序列。我想这是有意为之——通过在平均过程之后仔细调整色调映射来获得大部分“HDR”吸引力,即调整动态范围压缩回 8 位的精确度。如果您在相机上以硬编码的方式执行此操作,您将限制摄影师在实现最佳输出方面的选择。 MPI 有一个关于 HDR 成像技术的research group,它为此目的提供了源代码。

简而言之,“穷人的 HDR”只是一个平均值。 “正确的 HDR”永远不会是 8 位 JPEG,因为这会丢弃“高动态范围”中的“高”位 - 因此,从 HDR(将具有 16 位/颜色或更多)转换为例如JPEG 通常作为 HDR 图像序列的后处理(离机)步骤完成。

关于 HDR 视频的注意事项

对于 HDR 视频,如果您使用手持设备上的单个传感器进行录制,通常会在形成“HDR 序列”的图像之间引入运动(您的总曝光时间等于所有子曝光的总和,加上传感器数据读取和相机控制器重新编程的延迟)。
这意味着在实际叠加和最终色调映射操作之前也应尝试图像配准,除非您对模糊感到满意。配准在某种程度上是计算密集型的,也是先记录图像流并稍后执行 HDR 视频创建(提供一些手动调整)的另一个很好的理由。 OpenCV 库提供注册/匹配功能。

上面提到的 MPI 软件是PFSTools,特别是色调映射运算符 (PFStmo) 库。研究论文by one of the authors 提供了一个很好的起点;至于您关于如何执行后处理的问题,PFSTools 是通过 UNIX 管道互操作/传递数据的命令行实用程序;在 Maemo / N900 上,由于完整的 Linux 环境,它们的使用非常简单;只需通过system() 生成一个shell 脚本。

【讨论】:

  • 好的,假设我在事后将转换为 8 位 jpeg 卸载,是否有一个自动化程序可以在事后使用来处理 36,000 多个帧?我正在拍摄带有一堆帧的延时视频序列。我不想为每个手动调整 HDR ...
猜你喜欢
  • 1970-01-01
  • 2021-05-07
  • 2020-03-04
  • 2016-04-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多