opencv3 C 單目標跟蹤

2021-08-14 09:11:27 字數 1671 閱讀 2904

opencv3的tracking部分在opencv_contrib中,需要用cmake對其進行編譯後才能使用。

create

//通過名稱建立乙個***。

create(

const

string& trackertype//要使用的***演算法的名稱。

);

init

//使用圍繞目標的邊界框初始化***

init(

const mat& image, //初始幀

const rect2d& boundingbox//初始繫結框

);

init()如果初始化成功,則返回true,否則返回false.

update

//更新***,找到目標的最可能的邊界框。

update(

const mat& image,//當前幀

cv_out rect2d& boundingbox//新目標位置的邊界框,若為true,則返回;否則不進行修改。

);

update()返回true時表示目標被定位,false表示***不能在當前幀中定位目標(目標確實從框架中丟失)。

#include

#include

using

namespace cv;

int main()

namedwindow("output", window_autosize);

ptrtracker = tracker::create("kcf");

//tld速度超慢

//ptrtracker = tracker::create("tld");

//ptrtracker = tracker::create("medianflow");

capture.read(frame);

//翻轉影象

flip(frame, frame, 1);

rect2d roi;

roi = selectroi("output", frame);

if (roi.width == 0 || roi.height == 0)

//跟蹤

tracker->init(frame, roi);

while (capture.read(frame))

flip(frame, frame, 1);

tracker->update(frame, roi);

rectangle(frame, roi, scalar(255, 0, 0), 2, 8, 0);

imshow("output", frame);

char c = waitkey(1);

if (c==27)

}capture.release();

return

0;}

框選目標:

目標跟蹤:

opencv3 C 基於顏色的目標跟蹤方式

inrange函式 void inrange inputarray src,inputarr程式設計客棧ay lowerb,inputarray upperb,outputarray dst src 輸入影象 lowerb 下邊界陣列,閾值下限 upperb 上邊界陣列,閾值上限 dst 輸出影象 ...

opencv3之目標跟蹤(單目標 多目標)

對於剛入門的opencv玩家,提起目標跟蹤,馬上想起的就是camshift,但是camshift跟蹤往往達不到我們的跟蹤要求,包括穩定性和準確性。opencv3.1版本發行後,整合了多個跟蹤演算法,即tracker,大部分都是近年vot競賽榜上有名的演算法,雖然仍有缺陷存在,但效果還不錯。ps 我在...

opencv3 C 離散余弦變換DCT

離散余弦變換 discrete cosine transform,根據離散傅利葉變換的性質,實偶函式的傅利葉變換只含實的余弦項,而數字影象都是實數矩陣,因此構造了一種實數域的變換 離散余弦變換 dct 離散余弦變換具有很強的 能量集中 特性,左上方稱為低頻資料,右下方稱為高頻資料。而大多數的自然訊號...