2013-04-12 82 views
2

我試圖使用直觀的運動檢測代碼來檢測攝像機的運動。我正在使用OpenCV庫,並且我有一些代碼可以利用兩幀之間的差異來檢測更改。當從凸輪檢測到運動時,OpenCv C++記錄視頻

我有不同的框架工作得很好,它是黑色的,當沒有議案存在。

問題是,現在我可以檢測到黑色停止記錄或沒有黑暗開始記錄幀。

謝謝大家。

+0

嘗試使用直方圖函數'calcHist'。 – didierc

回答

1

看看自由軟件motion的代碼,以獲得鼓舞人心的想法。

對於可靠的運動檢測,有很多事情需要記住。例如容忍來自太陽旋轉的緩慢變化。或者接受可能來自最便宜的相機的瞬間圖像故障。

從我有過的一個小經驗來看,我認爲不僅僅是增加所有差異,它更好地計算變化超過特定閾值的像素數。

Motion還提供了掩碼,它允許您忽略附近道路上的移動。

2

一個非常簡單的事情就是將整個diff圖像求和成一個整數。如果這個總和超過了一個門檻,你就有了運動。然後您可以使用第二個閾值,當總和低於該限制時,您停止移動。

如果自上次閾值以來出現過一段時間,您還可以使閾值僅更改程序狀態。即在檢測到移動之後,你不檢查10秒的移動不足。

1

如何在內部存儲黑色框架並使用相同的比較代碼?如果新框架與全黑框架不同(超過閾值),請開始錄製。

這似乎是最直接的,因爲你已經有了圖像處理算法。

+0

非常感謝你 但如何將整個diff圖像求和成一個整數? –