2014-06-25 67 views
1

我的情景:比較活飼料的框架

我有一個攝像頭聚焦在一個白色的屏幕,它走的是一條活飼料和憑藉FrameReceived事件顯示在圖片框飼料。

如果在相機和屏幕之間插入了某些東西,我需要啓動裁剪圖像的過程。

該過程需要在圖像第一次改變時開始,因此我需要將一幀與另一幀進行比較以查看是否有任何改變。

我的努力

  • 我試圖散列的圖像,並比較他們,這不工作的幀從來沒有完全相同的
  • 我已經通過每個像素試圖循環,比較不同的價值觀如亮度,色調等,但這是太慢
  • 我已經嘗試循環與子示例,但它要麼太慢或太不可靠。
  • 我甚至試過我喜歡稱之爲「雙絞線解決方案」,我倒過來然後將它們加在一起並檢查結果,但這太複雜和緩慢。

我的環境

  • 的Visual Studio 2012(2010年如果neccessary可用)
  • 的uEye相機
  • C#
  • 的圖像類型System.Drawing.Bitmap的

注意

最大的問題似乎是,可靠地得到這樣的結果,它需要更長的時間比我們有一個合理的幀速率,這意味着一個新的框架來在之前的計算還沒有結束,這意味着,無論變量我用來存儲以前的圖像被覆蓋之前,它可以停止使用,並且似乎有線程建立後,它會導致整個lotta shakin。

回答

1

我會推薦使用某種圖像處理庫,因爲默認的.Net圖像處理工具是有限的,您可以使用像http://www.aforgenet.com/framework/這樣的圖像處理庫。

比你可以例如從圖像2中減去圖像1,並且求和差異。如果它們低於閾值(您選擇適合您的需求),它們是相同的。

或者你可以更深入地嘗試這個http://thecsharper.com/?p=94