配置OpenCV3、KCF体验、VS中的配置更改

OpenCV3在opencv_contrib中新增了KCF Tracker,故想体验一下。

OpenCV3的配置见这里

我之前给VS配置的是OpenCV2.4.13,这次更改为OpenCV3.1.0后,将Project->属性中的包含目录改为:D:\opencv310\opencv\build\include\opencv2和D:\opencv310\opencv\build\include\opencv后,发现报重定义的错误,怀疑没有改成功。遂直接在“属性管理器”直接更改Microsoft.CPP.x64.user文件,就ok了。


测试KCF的代码如下:

#include <opencv2/opencv.hpp>  
#include <core/types.hpp>  //声明Rect2d
#include <opencv2/tracking/tracker.hpp>   //声明Tracker类型

using namespace std;
using namespace cv;

int main() {
	// declares all required variables  
	//! [vars]  
	Rect2d roi;
	Mat frame;
	//! [vars]  

	// create a tracker object  
	Ptr<Tracker> tracker = Tracker::create("KCF");
	//! [create]  

	// set input video  
	//! [setvideo]  
	std::string video = "D:\\Project\\MotionDetector\\MotionDetection\\fastMCD-master\\data\\LosAngelesCarChase05September2014_KABC.avi";
	cv::VideoCapture cap(video);
	//! [setvideo]  

	// get bounding box  
	//! [getframe]  
	cap >> frame;
	//! [getframe]  
	//! [selectroi]选择目标roi以GUI的形式  
	roi = selectROI("tracker", frame);
	//! [selectroi]  

	//quit if ROI was not selected  
	if (roi.width == 0 || roi.height == 0)
		return 0;

	// initialize the tracker  
	//! [init]  
	tracker->init(frame, roi);
	//! [init]  

	// perform the tracking process  
	printf("Start the tracking process\n");
	for (;;) {
		// get frame from the video  
		cap >> frame;

		// stop the program if no more images  
		if (frame.rows == 0 || frame.cols == 0)
			break;

		// update the tracking result  
		//! [update]  
		tracker->update(frame, roi);
		//! [update]  

		//! [visualization]  
		// draw the tracked object  
		rectangle(frame, roi, Scalar(255, 0, 0), 2, 1);

		// show image with the tracked object  
		imshow("tracker", frame);
		//! [visualization]  
		//quit on ESC button  
		if (waitKey(1) == 27)
			break;
	}

	return 0;
}



1.KCF速度很快的,720P可以达到30fps。

2.KCF对部分遮挡的效果还是很好的,但处理全遮挡不行,因为毕竟不属于Long Term Tracker,没有重检测机制,还是要结合TLD比较好。



  • 14
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 15
    评论
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值