我在WebCam Image上运行一个进程。只有在发生重大变化时,我才想唤醒这个过程。
所以我在C#中寻找一种快速有效的算法来比较相同大小的2字节[](kinect图像)。
答案 0 :(得分:1)
概念:MPEG标准涉及运动检测。也许你可以监控MPEG流的带宽。如果没有运动,则带宽非常低(除了关键帧(I帧)之外)。如果某些事情发生变化并且正在进行任何移动,则带宽会增加。
所以你可以做的就是抓取JPEG并将其输入MPEG编码器编解码器。然后你可以看看编码流。您可以在一个范围内调整帧速率和带宽,再加上您决定编解码器输出流的阈值是什么,这意味着“运动”。
优点:非常通用,并且有可用的库,通常它们提供硬件加速(VGA / GPU有助于JPEG en /解码和一些或多个MPEG)。它也很标准。 缺点:计算要求比XOR要多。
答案 1 :(得分:1)
标记与之前图像不同的所有像素(基于阈值,即Pixel是否仅略微更改 - 将其视为噪点),标记为“已更改”
过滤掉噪点像素 - 即,如果像素被标记为已更改但其所有邻居都未被标记为 - 将其视为噪音并将取消标记为已更改
计算图像上更改的像素数,并与阈值进行比较(需要手动校准)
确保您使用的是灰度图像(非RGB)。即转换为YUV图像空间,仅在Y上进行比较。
这将是最简单,最快速的算法 - 您只需要调整这两个阈值。