我试图获得阈值图像和原始图像之间的差异,两者都是灰度图像。我的逻辑是,如果阈值图像和原始图像之间没有区别,那么这意味着没有任何阈值。
所以我想找到图像之间的区别,如果没有区别,那么我将输出一个" 0"到我用我的相机制作的用户界面,如果有差异,那么我将输出一个" 1"。
我尝试使用AbsDiff方法,但我尝试使用MatchTemplate方法,但这两种方法都不起作用,而且我没有想法。
我在互联网上搜索过,并没有发现任何有用的东西。以前有人做过这样的事吗?有没有人对我该做什么有任何指示?
答案 0 :(得分:1)
我不熟悉emgu CV,但为了进行这种比较,我会迭代图像中的每个像素,并返回“不等于”#39;如果两个图像之间有任何不同。
(编辑:逻辑上,这是迭代图像中的每个像素并进行比较。为了提高效率,我可能会得到两个图像缓冲区(即大小宽度*高度* BytesPerPixel),并使用{关于他们。{1}}假设memcmp
是一个优化的解决方案,你可以比较两个大缓冲区,并且你想避免使用{memcmp
。{1}} 1}}或类似的访问者。)
另外,我不会将此描述为获得差异的数值'。当你这样说时,我想到一系列数值:零意味着它们相等,小数字意味着它们略有不同,大数字意味着它们非常不同。如果你要查找的只是0或1,那么这是一个布尔值,而不是一个数值。获得“等于”的布尔值' /'不等于'比试图量化两幅图像的差异要容易得多。
答案 1 :(得分:1)
我的emguCV知识并不广泛,但您是否尝试使用emguCV的Cmp
方法创建差异掩码,然后使用CountNonzero
来查明是否存在差异。