我正在做一个运动检测应用程序,作为c#winform应用程序。2张图片之间的运动/差异检测
我使用openCV和emgu包装来辨别运动(我想陷入)。
很多时候没有动作变化,但我仍然需要在我的代码中检查它。
我给了md5一个去看看我是否可以使用它来快速检测2张图像是否有差异。我在99%的时间里发现2张图片的md5不匹配,因此告诉我这两张图片之间存在差异。我假设运动检测md5对于这样的任务不会太“敏感”吗?
可以将Md5设置为具有%差异阈值或/和是否有另一种方法来做到这一点?
感谢
到目前为止的代码:
private string getMd5Hash(byte[] buffer)
{
MD5 md5Hasher = MD5.Create();
byte[] data = md5Hasher.ComputeHash(buffer);
StringBuilder sBuilder = new StringBuilder();
for (int i = 0; i < data.Length; i++)
{
sBuilder.Append(data[i].ToString("x2"));
}
return sBuilder.ToString();
}
public string GetMD5(byte[] buffer)
{
return getMd5Hash(buffer);
}
//调用代码...
string img1= t.GetMD5(data);
string img2= t.GetMD5(data);
if (img1!= img2)
{
//differences
}
MD5是一个安全的散列算法,不是差分计算器。整个安全哈希的一点是,一个小的输入差异会创建一个完全不同的哈希值。您正在使用错误类型的算法 –
您好,非常感谢您的时间。我想我知道在我的脑海中,我对它的速度印象深刻,我希望能有类似的运动检测方法。 :) –