Algorithm 忽略亮度的图像比较算法

Algorithm 忽略亮度的图像比较算法,algorithm,colors,imaging,Algorithm,Colors,Imaging,我正在寻找一种算法,我可以用它来比较两幅图像,并确定两者之间是否存在显著差异。我的意思是,如果你拍了两张房间的照片,其中一张房间的墙上有一只大蜘蛛,你就能发现它。我并不是真的对检测到的东西感兴趣,甚至对检测到的地方也不感兴趣——只是有一些不同的东西。算法需要忽略亮度。如果房间在白天变亮或变暗,算法应该忽略它 即使你不知道算法,任何正确方向的提示都会有所帮助 谢谢 如果相机是完全静态的,并且所有差异都是由于环境照明和/或相机曝光设置造成的,则可以通过规范化两幅图像来忽略亮度(和对比度) 从每个图像

我正在寻找一种算法,我可以用它来比较两幅图像,并确定两者之间是否存在显著差异。我的意思是,如果你拍了两张房间的照片,其中一张房间的墙上有一只大蜘蛛,你就能发现它。我并不是真的对检测到的东西感兴趣,甚至对检测到的地方也不感兴趣——只是有一些不同的东西。算法需要忽略亮度。如果房间在白天变亮或变暗,算法应该忽略它

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


谢谢

如果相机是完全静态的,并且所有差异都是由于环境照明和/或相机曝光设置造成的,则可以通过规范化两幅图像来忽略亮度(和对比度)

从每个图像的所有像素中减去相应的图像平均值(平均像素值),然后取差值。这将照顾到亮度


如果还想处理对比度,则计算每个图像的方差(将平均值设置为0后),然后将像素值乘以将使它们具有相同方差的因子。差异现在也将对对比度保持不变(假设没有过度/不足曝光区域)。

我将尝试对2d数据执行高通滤波

根据该理论,通过分析信号中的频率,可以将每个信号转换为“频率空间”。这也适用于2d信号,如图像

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

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

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

可能的问题

按照要求,这里有一些我可以想象的问题

  • 无锐边:如果要检测的对象没有锐边,您可能会使用高频通滤波将其过滤掉。但那会是什么东西呢?它们必须是巨大、平坦(不产生阴影)且无结构的

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

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


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

解决此问题的常见方法是将相机拍摄的图像随时间平均,并检测高于给定阈值的任何差异

您需要在内存中保留一个平均图像。让我们称之为“平均值”

每次你的相机拍摄一张照片(称为“pic”),你都会:

  • 总结“平均”和“pic”之间的绝对像素值差异。
    • 如果高于阈值,则表示相机前面有东西在移动
    • 否则,修改“avg”,使其稍微收敛到“pic”。取决于你找到正确的公式,例如,
      avg=avg*0.95+pic*0.05

在这里,您的参考图像会随着一天的变化而变化,以适应太阳和阴影的变化。

如何从像素中删除亮度分量:

Red_ratio = Red / (Red + Blue + Green)
Blue_ratio = Blue / (Red + Blue + Green)
Green_ratio = Green / (Red + Blue + Green)

这些照片是从完全相同的角度拍摄的吗?你正在尝试制作安全摄像头软件吗?随着时间的推移,阴影的形状会发生变化吗?你不能将它们记为亮度。是的,这些照片是从完全相同的位置拍摄的。照相机从不动。这是一个安全应用程序。如果阴影是极端的,它改变了形状,那么是的,这也应该被检测到。你需要在你的用例中处于顶尖水平。爬行器的移动速度非常慢,如果设计不当,爬行器可以从屏幕的一侧移动到另一侧,而您的相机却看不见。如果爬行器在图像捕获之间出现,则会被捕捉到。如果他们能超过捕获率,那就没问题了。我不是来找超人的。FFT的妙用!一个非常好的方法!我也会为了更好的分离而努力,甚至可能在一天当中拍一张照片,然后我会用它来规范未来照片的亮度。如果不希望在视觉上对两张照片进行比较,那么计算互相关也有助于量化两张照片中的差异量。我在音频处理中使用了FFT,因此我对它很熟悉。但从未想过它是如何应用于图像的。这是一个有趣的方法。如果我理解你的方法,你试图做的只是将所有颜色降低到灰色或白色,其中白色显示为具有清晰定义边缘的结构的边缘。在某些情况下使用此解决方案时,您是否发现任何潜在问题?是的,您正确理解了我的意思。关键是信息缩减,只保留真正相关的信息。我将编辑我的答案,以反映您可能遇到的一些问题。我对一些事情有点困惑。高通滤波器是否会导致彩色图像转换为灰度,还是必须先创建灰度图像,然后再进行pa