0

给定 N 个具有不同曝光剂量的 X 射线图像,我必须将它们组合成一个单一的图像,以浓缩来自 N 个源图像的信息。如果我的研究是正确的,那么这个问题就属于HDRI范畴。

我的第一种方法是加权平均。对于初学者,我将只使用两个框架。

让我们A成为第一张图像,这是曝光度最低的图像,因此设置为更重以突出细节。让B是第二张曝光过度的图像,C得到的图像和M最大可能的像素值。因此,对于每个像素i

w[i] = A[i]/M

C = w[i] * A[i] + ( 1 - w[i] ) B[i]

应用此想法的示例结果:

在此处输入图像描述

请注意结果(第三张图像)如何很好地从两个源图像中捕获信息。

问题是第二张图像在对象边缘周围有不连续性(这在曝光过度的图像中是不可避免的),并且会影响结果。仔细看...

在此处输入图像描述

最有名的 HDR 软件似乎是Photomatix,所以我玩弄了它,无论我如何调整它,不连续性总是出现在结果中。

我认为我应该以某种方式忽略第二张图像的边缘,但我必须以“顺利的方式”进行。我尝试使用一个简单的阈值,但结果看起来更糟。

你有什么建议?(只欢迎开源库)

4

1 回答 1

1

这里的问题是每个图像都有不同的相关曝光剂量。任何 HDR 算法都必须考虑到这一点。

我询问了创建 X 射线图像的人,第二张图像的曝光剂量大约4.2是第一张的几倍。我给 Photomatix 提供了错误的 EV 值,因为我不知道 EV 是用停止表示的,1 停止表示参考值的两倍。因此,分配0 EV给第一个图像和+2.1 EV第二个图像,不连续性消失了,保留了所有信息。

下一个问题是我不知道 Photomatix 是如何做到的。因此,我尝试使用开源的Luminance HDR,又名 qtpfsgui来做同样的事情。

总而言之,包围曝光的图像必须输入到 HDR 压缩算法,该算法会创建 HDR 图像。基本上,这是一个包含所有图像信息的浮点图像。有很多算法可以做到这一点。Luminance HDR 将此称为HDR 创建模型,并提供其中两个:Debevec 和 Robertson。

但是,HDR 图像无法直接显示在传统显示器(即监视器)上。因此,我们需要将其转换为“正常”(LDR)图像,同时保留尽可能多的颜色信息。这称为色调映射,还有各种可用的算法;Luminance 将这些Tonemap Operators称为并提供了几个。它还会选择最合适的一个。Pattanaik 算子非常适合这些图像。

所以现在我正在阅读 Luminance 的代码以理解它并进行自己的实现。

于 2012-09-19T18:27:54.117 回答