自然图像的熵/频率

信息处理 图像处理 C#
2022-02-05 09:12:09

我有一个 C# 桌面应用程序。

我正在使用 OpenCV 的包装器,即 EMGU。

我只是在执行一个基本的运动检测操作。

我正在使用组件标签和 2 帧差异来确定运动变化。我还使用平均背景方法来更新我用来从当前帧和先前帧中“减去”的背景。

这一切运作良好。

现在考虑这个图像:

绿布什

因为这个灌木离相机很近,所以当风吹来时,我现在的方法会检测到移动。

另外,考虑这个图像:

蛛网

在这里,我们在图像右侧看到了一个蜘蛛网。当风吹过时,我再次获得运动检测。

我可能的解决方案:

寻找形状。对于像蜘蛛网这样的细长形状,高度大于宽度(达到一定比例),则忽略该运动。但是,当有人从马路对面走在图像后面的人行道上时,我发现我失去了动作。

侵蚀。我再次错过了像人和自行车这样的真正运动。

比较直方图我发现它不可靠。直方图只会测量不同颜色的数量(在它自己的 bin 中)。颜色可能会由于饱和度和光照而发生变化,或者/或者由于另一个物体经过而发现相同数量的颜色。

所以,我想到了使用萎缩。我确实在这里发布了一个较早的问题:

图像的熵

但是正如善意解释熵的人建议我应该在这里发布一个特定/单独的问题......

我想探索频率或/和熵是否对我有帮助?我应该查看空间分布还是频率分布?如果我想避免颜色变化,最好研究一下频率吗?

任何一种方法都会比另一种更快,因为我希望它尽可能实时。

对我来说,这里的任何教育都会很棒。

1个回答

为了分离树,熵将是一个很好的度量。但是,我建议您计算矩形窗口内灰度值的熵。考虑这张图片: 航拍图像

熵过滤后,我可以得到这个:

熵滤波图像

请注意,树木(以及其他信息区域)看起来是白色的,可以使用简单的阈值将它们分割出来。试试看它是否也适用于您的情况。

由于可能的预计算,这可以被优化为实时运行。