解决方法

g++ track.cpp -o run `pkg-config --cflags --libs opencv`

其中track.cpp是你自己的文件,run是启动文件
运行

./run

即可启动项目
以下是一个用opencv的程序,以供测试

#include <opencv2/opencv.hpp>
#include <iostream>
#include <stdio.h>
using namespace std;
using namespace cv;
Mat img(500, 500, CV_8UC3);
//计算相对窗口的坐标值,因为坐标原点在左上角,所以sin前有个负号
static inline Point calcPoint(Point2f center, double R, double angle)
{return center + Point2f((float)cos(angle), (float)-sin(angle))*(float)R;
}
void drawCross(Point center, Scalar color, int d)
{line(img, Point(center.x - d, center.y - d),Point(center.x + d, center.y + d), color, 1, CV_AA, 0);line(img, Point(center.x + d, center.y - d),Point(center.x - d, center.y + d), color, 1, CV_AA, 0);
}
static void help()
{printf("\nExamle of c calls to OpenCV's Kalman filter.\n""   Tracking of rotating point.\n""   Rotation speed is constant.\n""   Both state and measurements vectors are 1D (a point angle),\n""   Measurement is the real point angle + gaussian noise.\n""   The real and the estimated points are connected with yellow line segment,\n""   the real and the measured points are connected with red line segment.\n""   (if Kalman filter works correctly,\n""    the yellow segment should be shorter than the red one).\n""\n""   Pressing any key (except ESC) will reset the tracking with a different speed.\n""   Pressing ESC will stop the program.\n");
}int main(int, char**)
{help();KalmanFilter KF(2, 1, 0);                                    //创建卡尔曼滤波器对象KF  Mat state(2, 1, CV_32F);                                     //state(角度,△角度)  Mat processNoise(2, 1, CV_32F);Mat measurement = Mat::zeros(1, 1, CV_32F);                 //定义测量值  char code = (char)-1;Scalar color;int d=5;for (;;){//1.初始化  randn(state, Scalar::all(0), Scalar::all(0.1));          //  KF.transitionMatrix = (Mat_<float>(2, 2) << 1, 1, 0, 1);  //转移矩阵A[1,1;0,1]      //将下面几个矩阵设置为对角阵  setIdentity(KF.measurementMatrix);                             //测量矩阵H  setIdentity(KF.processNoiseCov, Scalar::all(1e-5));            //系统噪声方差矩阵Q  setIdentity(KF.measurementNoiseCov, Scalar::all(1e-1));        //测量噪声方差矩阵R  setIdentity(KF.errorCovPost, Scalar::all(1));                  //后验错误估计协方差矩阵P  randn(KF.statePost, Scalar::all(0), Scalar::all(0.1));          //x(0)初始化  for (;;){Point2f center(img.cols*0.5f, img.rows*0.5f);          //center图像中心点  float R = img.cols / 3.f;                                //半径  double stateAngle = state.at<float>(0);                //跟踪点角度  Point statePt = calcPoint(center, R, stateAngle);     //跟踪点坐标statePt  //2. 预测  Mat prediction = KF.predict();                       //计算预测值,返回x'  double predictAngle = prediction.at<float>(0);          //预测点的角度  Point predictPt = calcPoint(center, R, predictAngle);   //预测点坐标predictPt  //3.更新  //measurement是测量值  randn(measurement, Scalar::all(0), Scalar::all(KF.measurementNoiseCov.at<float>(0)));     //给measurement赋值N(0,R)的随机值  // generate measurement  measurement += KF.measurementMatrix*state;  //z = z + H*x;  double measAngle = measurement.at<float>(0);Point measPt = calcPoint(center, R, measAngle);// plot points  //定义了画十字的方法,值得学习下  img = Scalar::all(0);drawCross(statePt, Scalar(255, 255, 255), 3);drawCross(measPt, Scalar(0, 0, 255), 3);drawCross(predictPt, Scalar(0, 255, 0), 3);line(img, statePt, measPt, Scalar(0, 0, 255), 3, CV_AA, 0);line(img, statePt, predictPt, Scalar(0, 255, 255), 3, CV_AA, 0);//调用kalman这个类的correct方法得到加入观察值校正后的状态变量值矩阵  if (theRNG().uniform(0, 4) != 0)KF.correct(measurement);//不加噪声的话就是匀速圆周运动,加了点噪声类似匀速圆周运动,因为噪声的原因,运动方向可能会改变  randn(processNoise, Scalar::all(0), Scalar::all(sqrt(KF.processNoiseCov.at<float>(0, 0))));   //vk  state = KF.transitionMatrix*state + processNoise;imshow("Kalman", img);code = (char)waitKey(100);if (code > 0)break;}if (code == 27 || code == 'q' || code == 'Q')break;}return 0;
}

vscode运行OpenCV项目时出现undefined reference to cv::xxxx相关推荐

  1. 关于QT下配置OpenCV3.4.0后出现 error: undefined reference to ‘cv::xxx‘的问题及解决方案,直接使用编译好的opencv库

    按照网上的办法,在QT中pro文件末尾添加以下代码来引入OpenCV的库和头文件: INCLUDEPATH += D:\OpenCV3.4\opencv\build_mingw\install\x64 ...

  2. Opencv undefined reference to `cv::imread() Ubuntu编译

    Ubuntu下编译一个C++文件,C++源程序中使用了opencv,opencv的安装没有问题,但是在编译的过程中出现如下错误: undefined reference to `cv::imread( ...

  3. 用AndroidStudio和vsCode运行ReactNative项目

    笔记 react-native学习笔记安装依赖 必须安装的依赖有:Node.Watchman.JDK 和 Android Studio.虽然你可以使用任何编辑器来开发应用(编写 js 代码),但你仍然 ...

  4. 使用vscode运行vue项目

    !!学习完vue环境搭建并创建项目后下面我们介绍使用vscode运行vue项目.!! 文章参考:https://www.csdn.net/gather_29/OtTagg3sNzA2LWJsb2cO0 ...

  5. Idea运行web项目时,提示java.lang.ClassNotFoundException: com.mysql.jdbc.Driver解决方法

    Idea运行web项目时,提示java.lang.ClassNotFoundException: com.mysql.jdbc.Driver解决方法 参考文章: (1)Idea运行web项目时,提示j ...

  6. 【报错笔记】运行Maven项目时发现项目Build错误

    运行Maven项目时发现项目Build错误 错误原因:在pom.xml中没有定义maven运行插件 解决方案:在pom.xml写上以下依赖 <build><finalName> ...

  7. 运行VUE项目时,出现npm ERR! A complete log of this run can be found in:...报错

    运行VUE项目时,出现npm ERR! A complete log of this run can be found in:报错时,分享以下一种解决方案. 本机的 node版本如下 解决方法 1. ...

  8. IDEA 运行maven项目时出错:Error java:错误: 不支持发行版本 XXX 5,12,14等

    IDEA 运行maven项目时出错:Error : java:错误: 不支持发行版本 5 java学习笔记 报错截图 错误说明 [Error : java:错误: 不支持发行版本 5]错误是因为jav ...

  9. 在eclipse中直接运行JavaWeb项目时打开指定页面(默认的jsp)

    在Eclipse中直接运行JavaWeb项目时打开指定Jsp文件 原因 没改之前 解决方法 原因 今天做了一个JavaWeb的项目,必须先打开指定的jsp(我在这个jsp里建立了与数据库的连接,并且有 ...

最新文章

  1. C与指针、C陷阱与缺陷
  2. 商业模式(一):北京秒针公司,以互联网广告监测服务为主的生财之道
  3. 洛谷 P2951 [USACO09OPEN]捉迷藏Hide and Seek
  4. [密码学基础][每个信息安全博士生应该知道的52件事][Bristol Cryptography][第14篇]什么是基于线性对的密码学
  5. java不大于6位_末尾带4的完全平方数的数量并且打印输出_Java计算一个数加上100是完全平方数,加上168还是完全平方数...
  6. spark 应用程序性能优化经验
  7. Arcgis for Android 空间数据WKT与JSON描述
  8. AtCoder Regular Contest 088 E - Papple Sort(树状数组+结论)
  9. 用Windows身份验证访问数据库时,出现“用户 'YSBY-PC\ASPNET' 登录失败。”,这YSBY是我的计算机名。...
  10. java虚拟机的内存_Java虚拟机的内存结构
  11. Java 类加载器 详解
  12. 一文读懂社交网络分析(附应用、前沿、学习资源)
  13. 12306官方抢票服务,铁路候补购票服务扩大到全部旅客列车!
  14. 无人机矿业地形图测量方案
  15. 批量录入快递地址解决方案
  16. elasticsearch geo DSL 和API对比学习-矩形/多边形/距离/距离排序/距离分段聚合/geo_shape内含-相交-相离
  17. oracle 11g安装过程中问题:移动bin\oralbac11.dll 到bin\oralbac11.dll.dbl出错
  18. 电商系统:优惠券实体设计、数据库表设计、满减券、运费券
  19. 回顾知识点:计算机网络篇
  20. 王者荣耀微信有个服务器叫洛神降临,王者荣耀限定皮肤终于要返场啦 二周年限定居然是洛神降临_游戏吧手游网...

热门文章

  1. 基于python 的 ansys 二次开发-----借助pyansys安装包。
  2. android 防止反编译的若干方法
  3. 英特尔的这些黑科技你一定没见过
  4. NOIP提高组1580~1590集合答案
  5. js 对象转数组 数组转对象
  6. 统计文章单词频数(C语言)
  7. APA轨迹规划常见算法
  8. Python学习笔记 - 探索while无限迭代循环
  9. mmo手游地图同步总结
  10. 正则表达式及string相关内容