【发布时间】:2014-05-15 00:19:35
【问题描述】:
我的目标是将 8 位图像增强为 16 位图像。换句话说,我想增加 8 位图像的动态范围。为此,我可以使用固定场景和固定相机顺序拍摄多张 8 位图像。为了简化问题,我们假设它们是灰度图像
直觉上,我认为我可以通过以下方式实现目标
-
将两个 8 位图像相乘
resimage = double(img1) .* double(img2) -
平均指定数量的 8 位图像
resImage = mean(images,3)
假设images(:,:,i) 包含ith 8 位图像。
之后,我可以将生成的图像设置为 16 位。
resImage = uint16(resImage)
但在测试这些方法之前,我想知道还有另一种方法可以做到这一点 - 除了购买 16 位相机,或者这个主题的文献可能会更好。
更新:在下面显示的 cmets 中,我得到了关于上面简单平均的缺点和用于增强的图像堆栈的大量信息。所以这可能是一个很好的研究课题。感谢所有伟大的 cmets。
【问题讨论】:
-
您这样做是为了提高图像的分辨率吗?我可能错了,但是将两个 8 位图像相乘并不会增加图像中的细节。浮点值可能是 16 位,但图像质量不会提高。
-
如果您查看了我的第一篇文章,即使您可以克服这些问题,您基本上仍然在做一个运行平均,因此您将失去信息而不是获得.正如 Jigg 所说,平均多个图像有利于减少白/高斯噪声,并且是一种低通滤波器。边缘信息和更精细的细节将丢失,因此您将限制强度/颜色值的动态范围。 FWIW,这是一个很酷的问题,但很遗憾我们不能给你想要的答案。
-
OP 要求增加图像的动态范围,这在某些响应中与空间分辨率(即像素数)混淆了。问题是通过整合来自单个 8 位图像的数据,是否可以将一组 8 位图像(可能是同一物体没有移动)组合成具有更高动态范围的 16 位图像。我知道这是可能的,并且是天文成像中的一种常见做法,其中所谓的“图像堆栈”被平均在一起。看keithwiley.com/astroPhotography/imageStacking.shtml解释
-
@jcollomosse:我想我很困惑。我没有意识到 OP 想要增加动态范围。在这种情况下,HDR 也可以通过对场景进行多次曝光来发挥作用。我认为 OP 想用相同的参数(曝光、照明等)拍摄相同环境的图像。在那种情况下,我不应该假设......我当然做了自己的@$$!
-
@jcollomosse:同意。我会投票。我还建议 OP 稍微修改这个问题,因为它具有误导性。我没有意识到目标是增加动态范围。