比较实时Feed的框架

时间:2014-06-25 10:10:30

标签: c# image-processing

我的情景:

我有一个聚焦在白色屏幕上的相机,它正在拍摄实时信息并通过FrameReceived事件在图片框中显示该信息。

如果在相机和屏幕之间插入了某些内容,我需要启动一个裁剪图像的过程。

此过程需要在图像首次更改时开始,因此我需要将一个帧与另一个帧进行比较,以查看是否有任何更改。

我的努力

  • 我已经尝试过对图像进行散列并比较它们,因为帧不是完全相同所以不起作用
  • 我试图遍历每个像素,比较不同的值,如亮度,色调等,但这太慢了
  • 我尝试使用子样本循环,但它太慢或太不可靠。
  • 我甚至尝试过我喜欢称之为"双绞线解决方案"我倒了一个然后将它们加在一起并检查结果,但这太复杂而且很慢。

我的环境

  • Visual Studio 2012(2010年,如果有必要)
  • Ueye相机
  • C#
  • 图像的类型为System.Drawing.Bitmap

备注

最大的问题似乎是为了可靠地获得这个结果,它需要比合理帧速率更长的时间,这意味着在新帧进入之前计算没有完成,这意味着我使用的任何变量都是存储上一个图像在被停止使用之前被覆盖,并且在线程构建之后似乎存在线程并且它会导致整个shata shakin。

1 个答案:

答案 0 :(得分:1)

我建议使用某种图像处理库,因为默认的.Net图像处理工具是有限的,你可以使用像http://www.aforgenet.com/framework/这样的图像处理库。

例如,您可以从图像2中减去图像1,然后对差异求和。如果它们低于阈值(您选择适合您的需要)它们是相同的。

或者你可以更深入地尝试这个http://thecsharper.com/?p=94