OpenCV匹配图像曝光

时间:2016-07-15 15:50:38

标签: ios opencv image-processing

我想知道是否可以匹配一组图像中的曝光。

例如,假设您有5个以不同角度拍摄的图像。使用相同曝光拍摄图像1-3,5,而第四张图像曝光稍暗。然后,当我尝试使用(seamFinder with: gc_colorsurf detectionMULTI_BAND blendingWave correction等将这些组合成圆柱形全景时,结果显示为中间是由于图像4的黑暗。

我也尝试过使用exposureCompensator而没有运气。

由于我在iOS上拍摄照片,我可能会在需要时手动增加曝光度?但这似乎不是最佳的..

还有其他人处理过这个问题吗?

2 个答案:

答案 0 :(得分:2)

这种方法可能有点过分(而且不仅仅是一点点),但目前用于确保不同图像之间颜色一致性的最先进方法在HaCohen 等人的this article中提供。 / em>

他们的算法可以纠正图像集中的各种错误。我已经在具有大错误的数据集上实现并测试了它,并且表现非常好。

但是,再一次,我认为这对全景拼接来说太过分了。

答案 1 :(得分:2)

Sunreef提供了一篇非常好的论文,但由于可能实施的复杂性,它似乎有点过分。

您要做的是均衡曝光而不是整个图像,而是重叠区域。如果重叠区域的直方图匹配,则可以很好地指示图像具有相似的亮度和曝光条件。由于您正在执行多于1个针迹,因此您可能需要全局均衡才能使所有图像看起来相似,然后仅使用重叠区域上的加权均衡或二次优化来均衡它们(如果您使用二次方优化不是专业摄影师)。 OpenCV具有简单均衡补偿算法的简单实现。

detail:: ExposureCompensator类的OpenCV(此类stitiching的示例实现为here)非常适合您使用。

  1. 只需创建一个补偿器(尝试两种不同类型的补偿:GAINGAIN_BLOCKS
  2. 将图像输入补偿器,根据左上角的位置(在拼接图像中)和掩模(仅在重叠区域中可以是完全白色或白色)。
  3. 对每张图片应用补偿并反复检查结果。
  4. 我不知道在iOS中只做OpenCV的任何方法。