opencv裡的光流法有兩種,稀疏光流法 和 稠密光流法。簡單理解的話光流就是一個向量,包含在一定時間間隔內x方向位置的變化、y方向位置的變化,所以其三個主要因素就是dx,dy,dt。
基本假設:
(1):相鄰幀亮度恆定
(2):相鄰幀物體運動較小
(3):同一物體具有相同運動
1:稀疏光流法 cv.calcOpticalFlowPyrLK
只匹配指定的點比如前一張圖片的角點。
主要輸入:
prevImg:前一張灰度圖
nextImg:當前圖片
prevPts:要匹配的點(比如拐點、角點),float
主要輸出:
nextPts:根據prevPts以及當前圖像計算的新點
status:nextPts與prevPts是否匹配狀態,1為匹配,0為不匹配
err:光流點匹配的錯誤信息
2:稠密光流法 cv.calcOpticalFlowFarneback
每個像素點都有一個光流向量。
主要輸入:
prev:前一張單通道圖
next:當前單通道圖
pyr_scale:金字塔縮放比例
levels:金字塔縮放層數,原圖像算第一層
主要輸出:
flow:光流圖
感興趣的可以關注(*^_^*)(微信公眾號):桔子的算法之路