您好,登錄后才能下訂單哦!
這篇文章主要介紹了C++ OpenCV視頻操作之如何實(shí)現(xiàn)稠密光流對(duì)象跟蹤,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
前言
稠密光流算法(即圖像上所有像素點(diǎn)的光流都計(jì)算出來(lái)),由于要計(jì)算圖像上所有點(diǎn)的光流,故計(jì)算耗時(shí),速度慢。一般來(lái)說(shuō)我們?cè)谄綍r(shí)應(yīng)用上可能會(huì)用到的比較少,在這里我們就簡(jiǎn)單講解一下。
函數(shù)API
void cv::calcOpticalFlowFarneback( InputArray _prev0, InputArray _next0, OutputArray _flow0, double pyr_scale, int levels, int winsize, int iterations, int poly_n, double poly_sigma, int flags )
參數(shù)說(shuō)明如下:
InputArray :輸入前一幀圖像
InputArray :輸入后一幀圖像
OutputArray :輸出的光流
double:金字塔上下兩層之間的尺度關(guān)系
int :金字塔層數(shù)
int:均值窗口大小,越大越能denoise并且能夠檢測(cè)快速移動(dòng)目標(biāo),但會(huì)引起模糊運(yùn)動(dòng)區(qū)域
int:迭代次數(shù)
int:像素領(lǐng)域大小,一般為5,7等
double:高斯標(biāo)注差,一般為1-1.5
int:計(jì)算方法。主要包括OPTFLOW_USE_INITIAL_FLOW和OPTFLOW_FARNEBACK_GAUSSIAN
代碼實(shí)現(xiàn)
我們?cè)傩陆ㄒ粋€(gè)項(xiàng)目名為opencv--video4,按照配置屬性(VS2017配置OpenCV通用屬性),然后在源文件寫(xiě)入#include和main方法
先在外層讀取第一幀圖像
讀取圖像并時(shí)行稠密光流計(jì)算,下圖紅框內(nèi)就是用到了我們的API,明顯可以看出來(lái)這里比稀疏光流要簡(jiǎn)單些,因?yàn)椴挥迷傧全@取特征點(diǎn)進(jìn)行對(duì)比了,下面的藍(lán)色框就是我們繪制結(jié)果的函數(shù)
代碼結(jié)尾
繪制結(jié)果的函數(shù)
這樣整個(gè)就完成了,文章開(kāi)頭的視頻就是我們運(yùn)行起來(lái)的效果,下面是視頻中的截圖
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“C++ OpenCV視頻操作之如何實(shí)現(xiàn)稠密光流對(duì)象跟蹤”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來(lái)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。