【问题标题】:How to combine two images with different gains in Matlab/ C++如何在 Matlab/C++ 中组合两个具有不同增益的图像
【发布时间】:2012-06-14 19:16:17
【问题描述】:

我有两张图像,都是从同一个检测器同时拍摄的。

两个图像都有 11 位 分辨率(是的,这很奇怪,但这里就是这种情况)。两张图片的区别在于,一张放大了1倍,另一张放大了10倍。

如何获取这两个 11 位 图像,并将它们的像素值组合成一个 16 位 图像?基本上,这增加了最终图像的动态范围。

我对图像处理相当陌生。我知道有一个解决方案,因为其他系统在 FPGA 中逐个像素地执行此操作。我只是希望能够在 Matlab 后期处理中而不是在现场进行。我知道在 Matlab 中进行按位运算可能有点困难,但我们确实拥有每个可用工具箱的教育许可证。

如下所述,这看起来非常像 HDR 处理。目标不是艺术,而是数据保存。这最终将被放入 C++ 中并在自主飞行计算机上飞行,并且在运行中运行标准臃肿的 HDR 软件会扼杀我们的时间要求

感谢您的帮助!

作为旁注,我希望能够为任何收益组合做到这一点。即 2x 和 30x、4x 和 8x 等。在我的直觉中,我觉得这是一个看似简单的算法或插值,但我不知道从哪里开始。

收益

由于对收益的含义有些混淆,我将尝试解释一下。我们定制相机上使用的图像传感器 (CMOS) 能够同时输出两个单独的图像,这两个图像都是从相同的曝光中拍摄的。它可以做到这一点,因为传感器在其数据路径上有 2 个不同的电子放大器。

在摄影方面,就像您的数码单反相机能够同时使用 2 个不同的 ISO 值拍照一样。

抱歉给您带来了困扰

【问题讨论】:

  • “组合它们的像素值”到底是什么意思?
  • 为什么这不仅仅是将两个图像矩阵相加的情况,还可能与常数相乘?
  • Kol-对不起,如果这是模棱两可的。我想将每个像素表示为该像素的低增益和高增益版本的“组合”。 LG/HG 像素均由 11 位数字表示。对每个像素应用(由相机)不同的增益意味着两个 LG/HG 像素具有另一个没有的信息。我想将两者结合起来以增加我的动态范围。
  • 奥利-是这样吗?我真的不知道这背后的理论。我只是不知道这是如何工作的。两个像素的整数范围为 0-2^11。但该数字代表曝光值/像素值的不同比例。所以我不知道简单地添加是否能给我我需要的东西。我想这就是我被挂断的地方。谢谢!
  • Twerdster-非常高效。如果您查看我的问题,我确实接受相关答案。我确实接受不切实际的想法和讨论。我知道我不会问简单的问题,我只会问我真正无法解决的问题,但这就是为了对吧?我在这个社区很重要,不要让一个单一的统计数据从远方对我产生影响。

标签: c++ image matlab image-processing


【解决方案1】:

将 11 位范围放大到 16 位范围,乘以 (2^16-1)/(2^11-1)。
(假设您想要线性缩放。(这在放大时是合理的。)

如果增益是离散的(应用于 11 位范围),那么您有两个 11 位图像,其中一些值可能饱和。

如果在连续(模拟)或浮点范围内应用增益,则您的值可能会超出原始 11 位。此外,如果在连续(模拟)或浮点范围内应用增益,则可能首先将值缩放到另一个范围,例如[0,1](除以 (2^11-1))。 如果将值缩放到另一个范围,则必须除以新范围的最大值而不是 (2^11-1)。

无论哪种方式(无论增益是否在 11 位范围内),由于增益和加法,结果值可能大于原始范围。在这种情况下,您需要决定如何扩展它们:

  • 是否要将原来的 11 位范围缩放到 16 位(可能导致饱和)?
    如果这样乘以 (2^16-1)/(2^11-1) 的倍数

  • 是否要将最大可能值缩放为 2^16-1?
    如果这样乘以 (2^16-1)/( (2^11-1) * (G1+G2) )

  • 是否要将实际最大值缩放为 2^16-1?
    如果是这样乘以 (2^16-1)/(max(sum(I1+I2)))

编辑:

由于您不想添加图像,而是使用其中的不同细节,也许这篇文章会对您有所帮助:

Digital Photography with Flash and No-Flash Image Pairs

【讨论】:

  • 抱歉,我们的目标不是简单地将单个 11 位图像表示为 16 位缩放图像,因为其中的信息基本上保持不变。目标是使用来自两个图像的信息形成一个图像,每个原始图像都无法完全表示。
  • 一个。你的问题没有说明这一点。湾。有一些算法可以做到这一点,但是,图像通常来自具有不同曝光水平的同一场景的照片(或者一张有闪光灯,一张没有),而不是两张应用了增益的图像。请参阅编辑中的链接。
【解决方案2】:

您提出的问题称为"High Dynamic Range Imaging""Tone Mapping"。我建议您从那些 Wikipedia 文章开始,然后深入到其中引用的参考书目。

您没有提供有关图像的足够详细信息,无法给出更具体的答案。你提到的“收获”是什么?您是否提高了传感器的增益(达到 ISO 等效数字?),或者您是否使用了更长的曝光时间? 11 位像素值是线性的还是已经经过伽玛压缩?

【讨论】:

  • 快!我从来没想过要尝试 HDR 处理图片!感谢您的起点。我将研究后端算法并尝试一下。如果有人知道完成此操作所需的实际编程,我将暂时打开这个问题。谢谢!此外,我编辑了问题以包含有关“收益”的更多信息
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多