任務:我們在我們裝配線的末端安裝了攝像頭,其中 捕獲生產物品的圖像。舉個例子說,我們 產生票(其上有一些文字和圖片)。所以每張 產生的票都被拍成照片並保存到磁盤上作爲圖像。現在我 想檢查這些保存的圖像的異常(即比較 他們的圖像(模板),這是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