我正在使用 MATLAB 研究自动图像拼接算法。到目前为止,我已经下载了一个与我的想法非常相似的源代码,因此,我目前正在研究代码是如何工作的。
问题是,当将两个或多个图像拼接在一起时,它们的颜色强度很可能会彼此不同,因此缝合的接缝将是肉眼可见的......所以,现在,我正在尝试找出如何使用图像渐变重新分配它们的颜色强度,以便整个拼接图像具有相同的颜色强度。
我希望有人可以帮助我,如果可以的话,非常感谢你......
如果图像大量重叠,并且拼接算法在注册重叠区域方面做得非常好,一个非常简单的解决方案是在重叠区域中将两个图像的像素值混合在一起,使用加权平均值根据与重叠区域边缘的距离,权重从 0 到 1。
blendedPixel = (imageApixel * weightA) + (imageBpixel * weightB)
其中,当我们靠近重叠区域的 imageA 一侧时,weightA 接近 1,当我们靠近重叠区域的 imageB 一侧时,weightB 接近 1,并且 weightA 和 weightB 的总和始终为 1。
上面的方案不是特别有原则,确实依赖于拼接算法对重叠区域的图像配准做得很好。
该问题的另一个更原则性的解决方案是消除强度差异的来源,尝试使像素在图像平面上的响应均匀化。
该解决方案的形式将取决于强度差异的来源,这将取决于光学器件和场景照明条件。
例如,在处理从同一地点同时拍摄的户外场景照片时,主要的效果可能是“渐晕”效果,这可能是由于各种不同的原因,包括所拍摄的各种路径之间的差异通过相机光学系统的光线。
作为另一个例子,当处理通过显微镜拍摄的以倾斜角度照射的样品的照片时,主要影响可能是由于图像中最靠近光线的部分和远离光线的部分之间的照明差异。
渐晕通常表现为以镜头光轴在图像平面上的投影为中心的径向对称函数。要校正渐晕,您应该尝试拟合合适的径向对称函数。
光照变化可以采用不同的函数形式,但在许多情况下,拟合一个简单的线性近似就足够了。
根据场景以及可用图像的数量和可变性,您可能需要拍摄校准图像以正确拟合这些功能。
上述方法对强度差异来源的函数形式进行了假设,而不是关于场景或其统计数据。
另一种方法可能是对场景做出一些假设,例如,所有重要信息都由高于某个阈值的空间频率表示。然后,您可以删除所有低图像强度空间频率分量。这将使图像“变平”,消除大部分低频渐晕和照明问题。
这种方法可能适用于显微镜图像、卫星图像或其他场景的图像,其中大部分兴趣在于细节,而不是构图的戏剧性。
有许多论文解决了这个问题,其中许多处于技术复杂性的水平,而不是上述讨论。例如,参见 D Goldman,“Vignette and Exposure Calibration and Compensation”,IEEE Trans Pattern Analysis and Machine Intelligence,第 32 卷,第 12 期,pp2276-2288