介紹
光流是由物體或照相機的運動引起的兩個連續(xù)幀之間圖像物體視在運動的模式。它是2D向量場,其中每個向量都是位移向量,顯示點從第一幀到第二幀的運動。
光流在以下領(lǐng)域有許多應(yīng)用:
- 運動結(jié)構(gòu)
- 視頻壓縮
- 視頻穩(wěn)定
光流的工作基于以下幾個假設(shè):
- 物體的像素強度在連續(xù)的幀之間不改變。
- 相鄰像素具有相似的運動。
實現(xiàn)
在OpenCV中實現(xiàn)光流的步驟
1 查找一些關(guān)鍵點
在例子中我們用goodFeaturesToTrack函數(shù)來查找關(guān)鍵點。函數(shù)原型:
void cv::goodFeaturesToTrack( InputArray _image, OutputArray _corners,
int maxCorners, double qualityLevel, double minDistance,
InputArray _mask, int blockSize,
bool useHarrisDetector, double harrisK )
2 迭代跟蹤這些點
例子中用calcOpticalFlowPyrLK來計算光流。函數(shù)原型:
void cv::calcOpticalFlowPyrLK( InputArray _prevImg, InputArray _nextImg,
InputArray _prevPts, InputOutputArray _nextPts,
OutputArray _status, OutputArray _err,
Size winSize, int maxLevel,
TermCriteria criteria,
int flags, double minEigThreshold )
根據(jù)我的理解,在當前幀查找一些關(guān)鍵點,然后根據(jù)這些關(guān)鍵點,在下一幀進行匹配,得到這些點在下一幀的位置。這樣就得到了了一組向量,表示了當前幀和下一幀之前點的移動,也就實現(xiàn)了對一些物體的跟蹤。
官方例子
#include
#include
#include
#include
#include
#include
using namespace cv;
using namespace std;
int main(int argc, char **argv)
{
const string about =
"This sample demonstrates Lucas-Kanade Optical Flow calculation.\\n"
"The example file can be downloaded from:\\n"
" https://www.bogotobogo.com/python/OpenCV_Python/images/mean_shift_tracking/slow_traffic_small.mp4";
const string keys =
"{ h help | | print this help message }"
"{ @image | vtest.avi | path to image file }";
CommandLineParser parser(argc, argv, keys);
parser.about(about);
if (parser.has("help"))
{
parser.printMessage();
return 0;
}
string filename = samples::findFile(parser.get
運行結(jié)果截圖
審核編輯:劉清
-
OpenCV
+關(guān)注
關(guān)注
33文章
650瀏覽量
43980 -
python
+關(guān)注
關(guān)注
56文章
4848瀏覽量
88953 -
printf函數(shù)
+關(guān)注
關(guān)注
0文章
31瀏覽量
6188
發(fā)布評論請先 登錄
ELF 1技術(shù)貼|如何在Ubuntu中編譯OpenCV庫

【教程】通俗講法告訴你什么是光流Optical Flow,附算法
OpenCV中的BGR格式,在libyuv中對應(yīng)的那個格式?OpenCV中的RGB格式呢?
如何在開發(fā)環(huán)境中的Python環(huán)境下使用我們提供的BM-OpenCV?
在Vivado中如何實現(xiàn)OpenCV設(shè)計
OpenCV庫的特點和主要功能及實現(xiàn)光流方法的運動說明

OpenCV庫的特點和功能與如何快速實現(xiàn)光流場的方法說明

奧比中光與OpenCV成為戰(zhàn)略合作伙伴
OpenCV Webinar 2丨如何在OpenCV中調(diào)用Tengine推理,實現(xiàn)開發(fā)效率翻倍

評論