如何使用渐变分布两幅图像的颜色强度?

时间:2011-01-05 14:31:45

标签: algorithm matlab graphics gradient panoramas

我正在使用MATLAB进行自动图像拼接算法。到目前为止,我已经下载了一个类似于我想到的源代码的源代码,因此,我正在研究代码是如何工作的。

问题是,当将两个或多个图像拼接在一起时,它们的颜色强度很可能彼此不同,因此缝合的接缝将对眼睛可见......所以,现在,我正试图找到如何使用图像渐变重新分配颜色强度,以便整个拼接图像具有相同的颜色强度。

我希望有人可以帮助我,如果是的话,非常感谢你......

1 个答案:

答案 0 :(得分:3)

如果图像重叠很多,并且拼接算法在登记重叠区域方面做得非常好,一个非常简单的解决方案是将两个图像中的像素值在重叠区域中混合在一起,使用加权平均值,权重从0到1,取决于距重叠区域边缘的距离。

  blendedPixel = (imageApixel * weightA) + (imageBpixel * weightB)

当weightA接近重叠区域的imageA侧时,weightA接近1,当我们接近重叠区域的imageB侧时,weightB接近1,而weightA和weightB的总和始终为1。

上述解决方案并不是特别有原则,并且取决于拼接算法在重叠区域中做好图像配准。

该问题的另一个更有原则性的解决方案是去除强度差异的来源,试图使像素在图像平面上的响应均匀化。

此解决方案的形式取决于强度差异的来源,这取决于光学和场景照明条件。

例如,当处理同一时间从同一地点拍摄的室外场景照片时,主导效果可能是“渐晕”效果,这可能是由于各种不同的原因造成的,包括光线通过相机光学镜头拍摄的各种路径。

作为另一个例子,当处理通过显微镜拍摄的以倾斜角度照射的样本时,主导效应可能是由于最接近光线的图像部分和远处光线的部分之间的照明差异。

渐晕通常表现为径向对称的功能,其以镜头的光轴在图像平面上的投影为中心。为了校正渐晕,你应该尝试适合径向对称的功能。

照明变化可以采用不同的功能形式,但在许多情况下,拟合简单的线性近似就足够了。

根据场景以及可用图像的数量和可变性,您可能需要拍摄校准图像以正确适应这些功能。

上述方法假设强度差异的来源的功能形式,但不是关于场景或统计数据。

另一种方法可能是对场景做出一些假设,例如,所有重要信息都由高于某个阈值的空间频率表示。然后,您可以删除所有低图像强度的空间频率分量。这将“平整”图像,消除大部分低频渐晕和照明问题。

这种方法可能适用于显微镜图像,卫星图像或其他场景的图像,其中大部分兴趣都在细节中,而不是在构图的戏剧中。

有许多论文可以解决这个问题,其中很多都处于技术复杂程度,而不是上述讨论。例如,参见D Goldman,“晕影和曝光校准和补偿”, IEEE Trans Pattern Analysis and Machine Intelligence ,第32卷,第12期,第2276-2288页