忽略亮度的图像比较算法

And*_*Dev 9 algorithm imaging colors

我正在寻找一种算法,我可以用来比较两个图像,并确定两者之间是否存在显着差异."重要",我的意思是,如果你拍了一张房间的两张照片,而其中一张房子的墙上有一只大蜘蛛,你就能够发现它.我并不真正感兴趣的是检测到什么,甚至在哪里 - 只是有不同之处.该算法需要忽略亮度.如果房间在白天变得更亮或更暗,算法应该忽略它.

即使您不知道算法,任何正确方向的提示都会有所帮助.

谢谢!

Tho*_*anz 4

我会尝试对您的二维数据进行高通滤波。

根据傅立叶理论,通过分析信号中的频率,可以将每个信号变换到“频率空间”。这也适用于二维信号,例如图像。

通过“高通滤波器”,您可以消除所有低频部分,例如恒定偏移和慢梯度。如果应用于图像,它可以用作简单的“边缘检测”算法。查看示例可能会更容易理解:

图像高通滤波

我从网络上的某个地方拍摄了墙上蜘蛛的图像(左上)。然后我降低了该图像的亮度(左下)。对于这两个版本,我都使用 GIMP (此插件)应用了高通滤波器。对于两个输入图像,输出看起来非常相似。

我的建议:首先应用高通滤波器,然后查看差异。

可能出现的问题

按照要求,这里列出一些我能想到的问题。

  • 无锐利边缘:如果您要检测的物体没有锐利边缘,您可能会使用高频滤波将其滤除。但那可能是什么物体呢?它们必须是巨大的、平坦的(为了不产生阴影)并且是非结构化的。

  • 只有颜色不同,没有亮度不同:如果对象仅颜色不同,但亮度与背景相同,则灰度转换可能会出现问题。但如果你遇到这个问题,只需分别分析 R、G、B 数据,那么至少一个通道应该有助于检测物体 - 否则,你无论如何都看不到它。

编辑 作为对???的答复,如果您还通过将其归一化到 0, 256 范围来再次调整高通滤波图像的级别(当然,其范围在 0.5*256 左右),您会得到

调整级别

这可能并不比你的结果更糟糕。但是,HP 滤波器很简单,并且在使用 FFT 时速度非常快。