做手势识别的过程中或需要用到track,继而发现Opencv已有多种方便直接调用的contri...
惯例先放效果:
现有的方法MIL,KCF,TLD,MEDIANFLOW,GOTURN(没跑成功)
#include <opencv2/opencv.hpp>
#include <opencv2/tracking.hpp>
using namespace cv;
using namespace std;
int main(int argc, char **argv)
{
// Set up tracker.
// Instead of MIL, you can also use
// BOOSTING, KCF, TLD, MEDIANFLOW or GOTURN
Ptr<Tracker> tracker = Tracker::create("MIL");
// Read video
VideoCapture cap(0);
// Check video is open
if (!cap.isOpened())
{
cout << "Could not open!" << endl;
return 1;
}
// Read first frame.
Mat frame;
cap >> frame;
// Define an initial bounding box
Rect2d bbox;
// Uncomment the line below if you
// want to choose the bounding box
bbox = selectROI(frame, false);
// Initialize tracker with first frame and bounding box
tracker->init(frame, bbox);
while (waitKey(30) != 27)
{
cap >> frame;
// Update tracking results
tracker->update(frame, bbox);
// Draw bounding box
rectangle(frame, bbox, Scalar(255, 0, 0), 2, 1);
// Display result
imshow("Tracking", frame);
}
return 0;
}
有问题欢迎留言交流XD