【发布时间】:2018-10-29 11:11:38
【问题描述】:
我一直在使用一些图像处理技术来制作 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,但所有这些offer 好像是上面的 Lucas Kanade 方法。我还看到过像https://github.com/almalence/OpenCamera 这样的项目,它们很容易在纯Java 中做到这一点。虽然代码并不容易(一个类有 5k 行代码)。有没有人指点可靠的资源。
【问题讨论】:
-
你能显示到目前为止你尝试过的代码吗?现在这个问题太宽泛了
-
文件太多很难发布...抱歉
-
顺便说一句,我认为这个问题并不广泛。它是关于图像对齐技术的,我还参考了目前使用的算法。代码不重要,更重要的是算法。
标签: java image image-processing hdr