任务:我们在我们装配线的末端安装了摄像头,其中 捕获生产物品的图像。举个例子说,我们 产生票(其上有一些文字和图片)。所以每张 产生的票都被拍成照片并保存到磁盘上作为图像。现在我 想检查这些保存的图像的异常(即比较 他们的图像(模板),这是OK)。因此,如果在我们的组装线上出现问题 (包含缺失图片,污点等),我的 应用程序应该找到它(因为它的图像与我的 模板相差太多)。比较图像以找出差异
问:什么是最简单的方法来比较图片,并找到他们之间的差异?我是否需要编写自己的方法,或者我可以使用现有的方法吗?如果我只是设置一个容差值 (即图像可以不同于1%),将会很好,将两个图像放在一个函数中,并获得返回值true或false :)
工具:C#或VB。 NET,Emgu.CV(OpenCV的.NET包装)或类似的东西
散列是一个不错的主意,但由于每个图像的像素数量很大(想到1600 * 1200字节或灰度为1.875 MB),整个图像上的像素逐像素分析不会产生最佳性能 – sum1stolemyname 2010-03-31 14:51:27
似乎就像它取决于所用算法的速度一样,因为任何预计能够识别1-2%的差异的算法都必须遍历整个文件。 也许做一个快速减去图像,然后总结余下的。这将尽可能快地完成,同时仍然检查整个图像。 – tloflin 2010-03-31 16:16:40