image - C# : Fast and Smart algorithm to Compare two byte array (image)

标签 image algorithm c#-4.0 kinect

我正在网络摄像头图像上运行一个进程。只有在发生重大变化时,我才想唤醒该过程。

  • 图片中有动静
  • 灯亮
  • ...

所以我在 C# 中寻找一种快速高效的算法来比较相同大小的 2 byte[](kinect 图像)。

  • 我只需要一种带有阈值的“差异大小”
  • 我找到了一些运动检测算法,但它“太多了”
  • 我找到了一些 XOR 算法,但它可能太简单了?如果我能忽略阳光、振动等微小变化,那就太好了……

最佳答案

  1. 将所有与之前图像不同的像素(基于阈值,即如果像素仅略有变化 - 将其视为噪声忽略)标记为“已更改

    <
  2. 滤除噪声像素 - 即,如果像素被标记为已更改但其所有相邻像素都未标记 - 将其视为噪声并取消标记为已更改

  3. 计算图像上有多少像素发生变化并与Threshold进行比较(需要手动校准)

  4. 确保您操作的是灰度图像(而非 RGB)。 IE。转换成YUV图像空间,只在Y上做比较。

这将是最简单和最快的算法 - 您只需要调整这两个阈值。

关于image - C# : Fast and Smart algorithm to Compare two byte array (image),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18198146/

相关文章:

c# - 将未知(在设计时)属性添加到 ExpandoObject

c# - 将字符串拆分为字典作为键,列表

iphone - 如何在 iPhone 上的 TableView 行的右侧添加图像?

java - 如何从 2 个位图生成位图?

java - .jar 文件中的图标路径

javascript - 不断向后移动数组

php - 如何始终在正方形中显示图像

algorithm - Clojure 字符串用文本替换 map 向量

c++ - C++ 中没有嵌套循环的 2-组合,其中迭代次数等于 2-组合的数量

c# - 显示一个窗口服务的弹出窗体