Re: [問題] 用opencv寫視訊監控系統
※ 引述《gmuooo (Miraculous)》之銘言:
: ※ 引述《EterneLilac (Eterne)》之銘言:
: : 我想用opencv去寫一個視訊監視器的的東西,
: : 當輸入發生異常的時候他可以儲存當下圖片,
: : 我目前構想是用opencv網站上的"讀視頻文件和運動物體檢測"來製作,
: : 讓他比較前後兩張圖片的差異,
: : //當前幀跟背景圖相減
: : cvAbsDiff(pFrameMat, pBkMat, pFrMat);
: : if(pFrameMat != pFrMat)
: : {
: : printf(" unusual \n");
: : }
: : 但是怎麼跑前後他兩張圖都會有差異,一直顯示unusual,
: : 請問我該怎麼修改呢?
: : 還是我要做的東西有其他方式可以完成?
: 提供一個方向給您。
: 根據opencv網站,基本上應該可以達到你的需求,只是在一些步驟上,可能沒有搞清楚。
: 所謂運動物體檢測,簡單說就是在穩定的影像上(Camera固定角度),可以利用建立背景
: 模型方式進行,一般最常用的是GMM。利用建立好得背景與當前影像做相減。這時候取得
: 之影像為前景影像。之後在針對這前景影像做分析判斷。
: 你的問題在於你的pFrameMat應該是你當前影像pBkMat為背景影像,那pFrMat肯定就是
: 前景影像,那不管怎樣比你的當前影像一定不等於你的前景影像,故才會一直出現
: "unusual"。
其實最主要的原因在於 cvAbsDiff()函數運算後,
因為取影的自然雜訊便會讓前後影像間有差異存在,
所以比較適合的判斷點應該是以二值化後的影像,
針對前後兩張圖之間相減後的Blob大小,
進行臨界值的判斷,以決定是否有異物出現,
建議將每次相減後的二值影像畫出,你自然就會知道原因了。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 116.89.141.235
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 3 之 3 篇):
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章