win10 下的opencv3.2.0实现tracker常见问题----必要条件整理

在opencv中常常要实现对视频中的目标进行追踪,一些比较新的方法(比如MIL、KCF、TLD等)都在opencv_contrib库里,所以首先你需要下载安装opencv_contrib库,详见在win10下实现openCV3.2.0+vs2015+cmake出错解决方案 。这里需要说明的是我的系统是win10的,所以开发环境均在win10下,以下不做特殊说明均在win10下完成。
关于tracking官网提供了其参考资料Tracking API 、Introduction to OpenCV Tracker 。
opencv3.X以后将目标追踪方法集成到tracking上,集成图如下:

tracking实现的思路如下:

●创建tracker对象 
●使用roiSelector函数的功能,从指定的图像中选择ROI 
●在图像中跟踪特定的区域

这里我引入了一段网上的代码,也是官网的代码稍加修改:

#include <opencv2/core/utility.hpp>
#include <opencv2/tracking/tracking.hpp>
#include <opencv2/videoio.hpp>
#include <opencv2/highgui.hpp>
#include <iostream>
#include <cstring>
using namespace std;
using namespace cv;

int main(int argc, char** argv) {
	// declares all required variables
	Rect2d roi;
	Mat frame;
	// create a tracker object
	Ptr<Tracker> tracker = Tracker::create("KCF");
	// set input video
	//  std::string video = argv[1];
	VideoCapture cap("dount.avi");
	// get bounding box
	cap >> frame;
	roi = selectROI("tracker", frame);
	//quit if ROI was not selected
	if (roi.width == 0 || roi.height == 0)
		return 0;
	// initialize the tracker
	tracker->init(frame, roi);
	// perform the tracking process
	printf("Start the tracking process, press ESC to quit.\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
		tracker->update(frame, roi);
		// draw the tracked object
		rectangle(frame, roi, Scalar(255, 0, 0), 2, 1);
		// show image with the tracked object
		imshow("tracker", frame);
		//quit on ESC button
		if (waitKey(1) == 27)break;
	}
	return 0;
}

运行这段代码有两个环境变量要配置:

1.   Ptr<Tracker> tracker = Tracker::create("KCF");报错;

原因是我们要将opencv_contrib库里的tracking引入工程中,这里有两种方法:

a.直接将opencv_contrib库里tracking文件夹复制到opencv2下,并将tracking文件夹中的tracking文件夹中的内容复制到最外层文件夹里,

复制后的结果:

b.将cmake编译后的文件夹中的include目录引入工程中:VC++目录-->包含目录,添加:   D:\work\opencv\myopencv\install\include

这样编译就没有错误了。

由于我用的第一种方法所以遇到了一个这样的错误:

错误  C1014:包含文件太多:深度=1024

出现这个错误可能的原因是opencv2中有文件重复。

2.编译链接时出现了无法编译的外部错误:


严重性


代码


说明


项目


文件



禁止显示状态


错误


LNK2019


无法解析的外部符号 "public: bool __cdecl cv::Tracker::init(class cv::Mat const &,class cv::Rect_<double> const &)" ([email protected]@[email protected]@[email protected]@[email protected]@[email protected]@Z),该符号在函数 main 中被引用


point_collect


D:\work\project\point_collect\point_collect\质点追踪.obj


1

一共有四个这里显示了一个,原因就是没引入tracking的动态链接库,就是要将cmake后的文件夹下的动态链接库引入到工程中,

然后配置输入文件的附加依赖项:

这里注意如果是

Debug:

opencv_aruco320d.lib

opencv_bgsegm320d.lib

opencv_bioinspired320d.lib

opencv_calib3d320d.lib

opencv_ccalib320d.lib

opencv_core320d.lib

opencv_datasets320d.lib

opencv_dnn320d.lib

opencv_dpm320d.lib

opencv_face320d.lib

opencv_features2d320d.lib

opencv_flann320d.lib

opencv_fuzzy320d.lib

opencv_highgui320d.lib

opencv_imgcodecs320d.lib

opencv_imgproc320d.lib

opencv_line_descriptor320d.lib

opencv_ml320d.lib

opencv_objdetect320d.lib

opencv_optflow320d.lib

opencv_phase_unwrapping320d.lib

opencv_photo320d.lib

opencv_plot320d.lib

opencv_reg320d.lib

opencv_rgbd320d.lib

opencv_saliency320d.lib

opencv_shape320d.lib

opencv_stereo320d.lib

opencv_stitching320d.lib

opencv_structured_light320d.lib

opencv_superres320d.lib

opencv_surface_matching320d.lib

opencv_text320d.lib

opencv_tracking320d.lib

opencv_video320d.lib

opencv_videoio320d.lib

opencv_videostab320d.lib

opencv_xfeatures2d320d.lib

opencv_ximgproc320d.lib

opencv_xobjdetect320d.lib

opencv_xobjdetect320d.lib

否则:

  1. opencv_aruco320.lib
  2. opencv_bgsegm320.lib
  3. opencv_bioinspired320.lib
  4. opencv_calib3d320.lib
  5. opencv_ccalib320.lib
  6. opencv_core320.lib
  7. opencv_datasets320.lib
  8. opencv_dnn320.lib
  9. opencv_dpm320.lib
  10. opencv_face320.lib
  11. opencv_features2d320.lib
  12. opencv_flann320.lib
  13. opencv_fuzzy320.lib
  14. opencv_highgui320.lib
  15. opencv_imgcodecs320.lib
  16. opencv_imgproc320.lib
  17. opencv_line_descriptor320.lib
  18. opencv_ml320.lib
  19. opencv_objdetect320.lib
  20. opencv_optflow320.lib
  21. opencv_phase_unwrapping320.lib
  22. opencv_photo320.lib
  23. opencv_plot320.lib
  24. opencv_reg320.lib
  25. opencv_rgbd320.lib
  26. opencv_saliency320.lib
  27. opencv_shape320.lib
  28. opencv_stereo320.lib
  29. opencv_stitching320.lib
  30. opencv_structured_light320.lib
  31. opencv_superres320.lib
  32. opencv_surface_matching320.lib
  33. opencv_text320.lib
  34. opencv_tracking320.lib
  35. opencv_video320.lib
  36. opencv_videoio320.lib
  37. opencv_videostab320.lib
  38. opencv_xfeatures2d320.lib
  39. opencv_ximgproc320.lib
  40. opencv_xobjdetect320.lib
时间: 2024-07-30 20:35:40

win10 下的opencv3.2.0实现tracker常见问题----必要条件整理的相关文章

在win10下实现openCV3.2.0+vs2015+cmake出错解决方案

在研究sift算法时发现opencv3.X版本中有些库函数被去掉了.网上查了一下,确实没有sift算法这部分代码了,需要通过网上下载附加库opencv_contrib-3.2.0进行cmake编译就可以用了,于是进入漫长的cmake编译之旅!! 1.网上下载cmake 进入网站下载一个cmake,这里我下的是当前网站上的最新版本,个人觉得这个对编译影响不大.进入界面下载如下方式: 这里选择: Windows win64-x64 Installer: Installer tool has chan

(4)Linux(ubuntu)下配置Opencv3.1.0开发环境的详细步骤

Ubuntu下配置opencv3.1.0开发环境 1.最近工作上用到在Ubuntu下基于QT和opencv库开发应用软件(计算机视觉处理方面),特把opencv的配置过程详细记录,以供分享 2.步骤说明 一.安装OpenCV3.1.0 1.使用wget下载opencv源码 url : https://github.com/Itseez/opencv/archive/3.1.0.zip sudo apt-get install wget sudo wget https://github.com/I

在Win10下如何安装IMSL6.0

最近因为需要计算一些方程,自己编程效率低又容易出bug.然后自己就打算安装IMSL库函数,想借助库函数解决问题.折腾了一会,又在同学的帮助下,最后也安装上了.现在记录一下如何安装.配置吧.我是在win10下安装的IMSL6.0版,我就基于该版本来说一说如何安装啦. 1.准备IMSL6.0: IMSL6.0版 2.安装 解压之后,点击,可以看到如下界面 等待一会后,就可以看到如下界面了: 一直点NEXT,直至遇到让你输入序列号的地方,输入序列号(共六位):201111.再一直点击NEXT.在安装完

ubuntu16.04下安装opencv3.1.0

1.安装依赖项 sudo apt-get install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev 可选的 sudo apt-get install checkinstall yasm libtiff5-dev libjpeg-dev libjasper-dev libdc1394-22-dev libxine2-dev libgstreamer

Ubuntu16.04下安装OpenCV3.2.0

1.安装官方给的opencv依赖包 $ sudo apt-get install build-essential $ sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev $ sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev

【深度学习】ubuntu16.04下安装opencv3.4.0

1.首先安装一些编译工具 # 安装编译工具 sudo apt-get install build-essential # 安装依赖包 sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev # 安装可选包 sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-d

win10下vs2015配置Opencv3.1.0过程详解(转)

下载安装Opencv3.1.0 下载Opencv3.1.0,进入官网,点击opencv for windows即可下载.  点击运行下载好的文件.实际上,opencv的安装程序就是解压缩文件,个人因为只有C盘,所以就直接在C盘建了一个文件夹Opencv3.1.0.  选好路径之后点击Extract即可. OpenCV3.1.0环境变量配置 选择此电脑(计算机),右键属性->高级系统设置->环境变量->系统变量->找到Path->在变量值中添加相应路径,我的路径是 C:\Ope

win10下vs2015配置Opencv3.1.0过程详解

下载安装Opencv3.1.0 下载Opencv3.1.0,进入官网,点击opencv for windows即可下载.  点击运行下载好的文件.实际上,opencv的安装程序就是解压缩文件,个人因为只有C盘,所以就直接在C盘建了一个文件夹Opencv3.1.0.  选好路径之后点击Extract即可. OpenCV3.1.0环境变量配置 选择此电脑(计算机),右键属性->高级系统设置->环境变量->系统变量->找到Path->在变量值中添加相应路径,我的路径是 C:\Ope

VC6.0在Win10下的兼容性问题设置(可以试试)

Microsoft Visual C++ 6.0,简称VC6.0,是微软推出的一款C++编译器,将"高级语言"翻译为"机器语言(低级语言)"的程 序.Visual C++是一个功能强大的可视化软件开发工具.自1993年Microsoft公司推出Visual C++1.0后,随着其新版本的不断问 世,Visual C++已成为专业程序员进行软件开发的首选工具. VC++6.0主要是在Windows XP下运行,在win7,win8和win10下运行均会存在一些兼容性的