我看到與opencv運動檢測有關的查詢,但我的要求更簡單,所以我再次問這個問題。 我想分析視頻幀並查看幀中是否發生了變化。在框架中發生的任何類型的運動都被認可。如果發生什麼事我只想得到通知。我不需要追蹤/繪製輪廓。製成運動檢測使用OpenCV
嘗試:
1)使用的OpenCV(TM_CCORR_NORMED模板匹配)。
我得到使用cvMinMaxLoc &
if(sim_index > threshold)
"Nothing chnged"
else
"Changed
面臨的問題相似度指數:
我無法找到一個方法來決定如何設定閾值。錯配和完美的價值非常接近。
2)方法2
a)使運行平均值
b)採取當前幀與移動平均之間絕對差。
c)閾值並使其成爲二進制
d)計算非零值的數量
我再次堅持如何對它進行閾值處理,因爲即使對於非常相似的幀,我也獲得了大量的非零值。
請問我應該採取什麼方法。我是用上述兩種方法走向正確的方向,還是有一種簡單的方法可以在所有大多數通用情況下工作。
如果TM_CCORR_NORMED與Pearson Correlation Coefficient等價,那麼取決於您的幀如何修改,您將很難確定此方法的良好閾值,因爲沒有好的閾值。但你沒有清楚地說出你在第一種方法中做了什麼。你是否將初始幀設置爲基準幀,然後將每個新幀與它進行比較?然後,如果'sim_index'低於'threshold',則將此新框架標記爲基礎框架。重複。那是你的方法嗎? – mmgp