对齐连拍图片

时间:2018-10-29 11:11:38

标签: java image image-processing hdr

我一直在使用一些图像处理技术来制作HDR图片和类似图片。我发现很难对齐连拍图像...我尝试了一些简单的运动搜索算法,只是基于比较不同图片之间像素的小样本(如16x16),它们的工作原理非常相似: -在第一张图片中选择一个16x6块,一个高对比度,然后对其进行模糊处理以减少噪点 -在相邻半径中进行比较(也针对噪声进行模糊处理)...(通常使用均方差) -选择最相似的一个。

我尝试了一些改进措施,例如使用这些搜索算法(https://en.wikipedia.org/wiki/Block-matching_algorithm)加快了速度。但是结果不好,当结果不可靠时。此外,它们在计算方面也非常繁琐(例如,这排除了在移动设备上的使用)。

我研究了基于流行的基于研究的算法,例如https://en.wikipedia.org/wiki/Lucas%E2%80%93Kanade_method,但它似乎不太适合大动作。如果我们看到用当今的手机拍摄的连拍图像,其传感器> 12Mpix,则小的移动很容易导致50-100像素的差异。 Lucas Kanade方法似乎更适合少量运动...

这有点令人沮丧,因为似乎有成百上千个执行HDR的应用程序,而且它们似乎能够快速,轻松,可靠地匹配图片...我试图研究OpenCV,但所有这些报价似乎是上述Lucas Kanade方法。我也看到过像https://github.com/almalence/OpenCamera这样的项目,它们可以在纯Java中轻松实现。尽管代码并不容易(一个类可以完成5k行)。没有人有任何指向可靠资源的指针。

1 个答案:

答案 0 :(得分:0)

看看Google的HDR+ paper。它使用分层算法进行对齐,该算法非常快速,但不够鲁棒。之后,它使用对对齐失败具有鲁棒性的合并算法。

但是将其用于普通HDR可能有点棘手,因为它说:

我们捕获了恒定曝光的帧,这使对准更加牢固。

Here是另一项需要亚像素精确对准的工作。它使用HDR +论文中引入的对齐方式的改进版本。

HDR+ code