比较1个接一个的2位图

时间:2014-09-22 04:26:21

标签: c# bitmap camera

我正在考虑编写一个非常简单的程序来逐像素地比较2个ARGB数组。两张图像的分辨率相同,使用相同的相机拍摄。

由于相机处于静止不动状态,我希望通过

来比较位图来源是一个相当简单的程序
  1. 将每个像素转换为灰度像素
  2. 逐字比较从位置0到N的每个像素。
  3. 使用isClose方法进行近似+/- 3。
  4. 结果是我有太多的错误位。但是当从中取出JPEG并用肉眼观察它们时,它们似乎是相同的(情况就是这样)。

    为什么你认为我在比较时会看到这么多错误?

    BTW - 我正在尝试写一个非常基本的运动检测版本。

2 个答案:

答案 0 :(得分:1)

如果您要跟踪已知对象,则可以在比较图像之前对其进行预处理。例如,如果它是您正在跟踪的球并且它看起来比周围环境更亮,则可以对灰度图像进行阈值处理,该图像将生成仅具有黑色或白色的图像。然后,您可以检测所谓的“轮廓”(请参阅​​openCV文档)。获得任何图像后的(轮廓)轮廓后,您可以比较每个连续图像中的轮廓位置。有一些算法可以帮助确定下一个移动对象的位置,这样有助于在下一帧中找到它。 如果不确切知道自己在做什么,就很难给出任何具体内容 而且我看到你是C#......也许这会有所帮助:.Net (dotNet) wrappers for OpenCV?

答案 1 :(得分:0)

b / c图片不一样。 每一个你按下相机的按钮有点不同。 变化是巨大的"如果你逐个像素地比较。

我不是运动检测专家,但尝试比较像素周围的平均值 - 我认为它会给你更好的结果。