如何找到应该是灰度的 RGB 图像的颜色通道偏移?

信息处理 图像处理
2022-01-09 17:03:33

我正在使用一种似乎水平移动颜色的记录设备,我想找到我必须在 2/3 的通道上进行的非移动量,以便获得颜色失真最小的图像。

捕获的图像

您可以在此处看到,在原始图像中,至少蓝色通道向后移动了约 1.0 像素。

在此处输入图像描述

问题是我如何检测最佳的 unshift 值,我确定它们不是整数。

1个回答

从概念上讲,您似乎快到了:

  • 以三个颜色通道之一作为参考(例如:红色)
  • 将绿色与红色相匹配
  • 将蓝色与红色相匹配

那么问题是与亚像素精度的匹配。要获得有意义的数字有点棘手,因为任何方法都会产生的插值错误会对准确性产生影响。

我能想到两种可用的图像配准方法:

  1. Lucas-Kanade图像配准。使用线性插值可能无法为您提供足够准确的结果,因此请考虑使用双三次或其他方法。 Neil Dodgson做了一个很好的概述。重要的是插值内核的不同亚像素位移具有相似的频率转移。对于三次族,在这种情况下,近似 b 样条比 cattmull-rom 好得多。

  2. 首先放大图像,然后使用您最喜欢的技术进行像素精确的图像配准。(傅立叶域中的互相关应该可以)。这仅在仔细进行升级时才有效。双线性或双三次很可能无法为您提供足够的准确性。我可以想到三种方法:

一种。日元插值见他论文的方程 11。真的很慢,但最佳。尽管您似乎在信号中有一些别名,因此 Yen 所做的“带宽限制”假设可能不成立。

湾。计算图像的 FFT,对高频进行零填充,逆 FFT。

C。非线性放大。由于边缘非常锐利,图像没有得到适当的带宽限制,这可能是以前方法的主要限制。在这种情况下,边缘相关方向插值可能会更好。

一旦你有了两者之间的亚像素转换,无论你选择哪种方法,对绿色和蓝色通道的校正都已经解决了。