c++ - FCam - 弱光/HDR 照片

标签 c++ image maemo n900

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

如何拍摄 HDR 照片?根据我使用 SLR 的经验,您通常会拍摄 3 张照片,1 张不足,1 张超过,1 张曝光适合场景。

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

沃尔特

最佳答案

FCam 项目页面包含一个完整的相机应用程序 - FCamera,查看 FCam Download Page, last item ,对于“HDR 取景器”,它只是将长/短曝光图像平均在一起,而对于“HDR 捕捉”,它会自动记录一系列适当曝光的照片。请参阅源代码中的 src/CameraThread.cpp,我不确定从中引用是否合适,但您会在 CameraThread::run().

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

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

关于 HDR 视频的注意事项

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

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

关于c++ - FCam - 弱光/HDR 照片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4759068/

相关文章:

maemo - 如何开始 Maemo 软件开发

python - 如何处理 hildon.Seekbar 中的后退和前进按钮?

c++ - OpenCV imread 问题

Java SWT - 禁用按钮上的图像

c++ - 使用关系运算符比较指针是什么意思?

android - Xamarin Forms Android显示图片抛出异常

c# - 将 System.Drawing.Image 转换为 System.Windows.Media.ImageSource 没有结果

c++ - 当我使用 Maemo5 特定的 Qt 类时出现奇怪的编译错误..!

c++ - 在 MFC 中,为什么我需要创建 CWinApp 的全局实例?

c++ - CMake 中的调试与发布