当前位置: 首页 > news >正文

甘肃网站seo推广销售平台排名

甘肃网站seo推广,销售平台排名,写一篇软文1000字,泰安网站建设广告OpenCV跟踪模块算法介绍 OpenCV的tracking模块是一个功能强大的跟踪算法库,包含多种用于跟踪对象的算法。它可以帮助你在连续的视频帧中定位一个物体,例如人脸、眼睛、车辆等。 在OpenCV的tracking模块中,一些主要的跟踪算法包括&#xff1…

OpenCV跟踪模块算法介绍

OpenCV的tracking模块是一个功能强大的跟踪算法库,包含多种用于跟踪对象的算法。它可以帮助你在连续的视频帧中定位一个物体,例如人脸、眼睛、车辆等。

在OpenCV的tracking模块中,一些主要的跟踪算法包括:

  • 稀疏光流(Sparse optical flow):例如Kanade-Lucas-Tomashi (KLT)特征跟踪算法,跟踪图像中几个特征点的位置。
  • 卡尔曼滤波(Kalman Filtering):一种非常流行的基于先验运动信息的信号处理算法,用于预测运动目标的位置。这种算法的早期应用之一是导弹制导。
  • Meanshift和Camshift:这是定位密度函数最大值的算法,它们还用于跟踪。
    单目标跟踪器(Single object trackers):在这类跟踪器中,第一个帧使用矩形标记,以指示要跟踪的对象的位置。然后使用跟踪算法在后续帧中跟踪对象。在大多数实际应用程序中,这些跟踪器与对象检测器一起使用。
  • 多目标跟踪查找算法(Multiple object track finding algorithms):当我们有一个快速的目标检测器时,在每一帧中检测多个对象,然后运行一个跟踪查找算法来识别一个帧中的哪个矩形与下一个帧中的矩形相对应是有意义的。

这些算法各有优缺点,可以根据实际应用场景选择适合的算法。

具体调用步骤如下:

  1. 打开视频帧第一帧
  2. 框选目标,每选择一个目标按Enter键确认选择
  3. 按Esc退出框选模式
  4. 程序执行跟踪算法并绘制预测框
#include <opencv2/opencv.hpp>
#include <opencv2/tracking.hpp>
#include "timestamp.hpp"using namespace cv;
using namespace std;//加载静态库
#if defined(_WIN32)&&defined(_DEBUG)
#pragma comment(lib, "opencv_world346d.lib")
#elif defined(_WIN32)
#pragma comment(lib, "opencv_world346.lib")
#endif// 支持的跟踪算法
vector<string> trackerTypes = { "BOOSTING", "MIL", "KCF", "TLD", "MEDIANFLOW", "GOTURN", "MOSSE", "CSRT" };// 根据名字创建跟踪器
Ptr<Tracker> createTrackerByName(string trackerType)
{Ptr<Tracker> tracker;if (trackerType == trackerTypes[0])tracker = TrackerBoosting::create();else if (trackerType == trackerTypes[1])tracker = TrackerMIL::create();else if (trackerType == trackerTypes[2])tracker = TrackerKCF::create();else if (trackerType == trackerTypes[3])tracker = TrackerTLD::create();else if (trackerType == trackerTypes[4])tracker = TrackerMedianFlow::create();else if (trackerType == trackerTypes[5])tracker = TrackerGOTURN::create();else if (trackerType == trackerTypes[6])tracker = TrackerMOSSE::create();else if (trackerType == trackerTypes[7])tracker = TrackerCSRT::create();else {cout << "Incorrect tracker name" << endl;cout << "Available trackers are: " << endl;for (vector<string>::iterator it = trackerTypes.begin(); it != trackerTypes.end(); ++it)std::cout << " " << *it << endl;}return tracker;
}// Fill the vector with random colors
void getRandomColors(vector<Scalar> &colors, int numColors)
{RNG rng(0);for (int i = 0; i < numColors; i++)colors.push_back(Scalar(rng.uniform(0, 255), rng.uniform(0, 255), rng.uniform(0, 255)));
}int help(char* argv[])
{std::cout << "please input arguments:" << argv[0] << "tracktype video.mp4 videoiotype"<< std::endl;return -1;
}int main(int argc, char * argv[])
{if(argc < 4){return help(argv);}cout << "默认算法是CSRT" << endl;cout << "支持的算法包括:" << endl;for (vector<string>::iterator it = trackerTypes.begin(); it != trackerTypes.end(); ++it)std::cout << " " << *it << endl;// 设置跟踪器类型。更改此设置以尝试不同的跟踪器。	字符串 trackerType;if(atoi(argv[1]) == 0)trackerType = "MOSSE";else if(atoi(argv[1]) == 1)trackerType = "KCF";elsetrackerType = "CSRT";// 设置跟踪算法和视频的默认值string videoPath = argv[2];// 使用跟踪算法初始化 MultiTrackervector<Rect> bboxes;// 创建视频捕获对象以读取视频cv::VideoCapture cap;if(atoi(argv[3]) == 0)cap.open(0);else{cap.open(videoPath);}Mat frame;// 如果取消读取视频文件,则退出if (!cap.isOpened()){cout << "Error opening video file " << videoPath << endl;return -1;}// read first framecap >> frame;// 在对象上绘制边界框// selectROI 的默认行为是从中心开始绘制框// 当 fromCenter 设置为 false 时,可以从左上角开始绘制框bool showCrosshair = true;bool fromCenter = false;cout << "\n==========================================================\n";cout << "OpenCV 表示按 c 取消对象选择过程" << endl;cout << "这是行不通的。按 Esc 键退出选择过程" << endl;cout << "\n==========================================================\n";cv::selectROIs("MultiTracker", frame, bboxes, showCrosshair, fromCenter);// quit if there are no objects to trackif (bboxes.size() < 1)return 0;vector<Scalar> colors;getRandomColors(colors, bboxes.size());// 创建多跟踪器Ptr<MultiTracker> multiTracker = cv::MultiTracker::create();// 初始化 Multitrackerfor (int i = 0; i < bboxes.size(); i++)multiTracker->add(createTrackerByName(trackerType), frame, Rect2d(bboxes[i]));// 处理视频和跟踪对象cout << "\n==========================================================\n";cout << "开始跟踪,按 ESC 键退出。" << endl;while (cap.isOpened()){// 从视频中获取帧cap >> frame;// 如果到达视频末尾,请停止程序if (frame.empty()) break;{timestamp ti("update");// 使用新帧更新跟踪结果multiTracker->update(frame);}// 绘制跟踪对象for (unsigned i = 0; i < multiTracker->getObjects().size(); i++){rectangle(frame, multiTracker->getObjects()[i], colors[i], 2, 1);}// 显示帧imshow("MultiTracker1", frame);// 退出 X 按钮if (waitKey(1) == 27) break;}
}

文章转载自:
http://semitropics.c7513.cn
http://mountainward.c7513.cn
http://displeasure.c7513.cn
http://hydracid.c7513.cn
http://epaulette.c7513.cn
http://brothel.c7513.cn
http://floatplane.c7513.cn
http://chimpanzee.c7513.cn
http://verruciform.c7513.cn
http://classic.c7513.cn
http://carlin.c7513.cn
http://vinifera.c7513.cn
http://hurdler.c7513.cn
http://quibblesome.c7513.cn
http://courge.c7513.cn
http://vulgate.c7513.cn
http://dac.c7513.cn
http://gunsight.c7513.cn
http://cuckold.c7513.cn
http://modillion.c7513.cn
http://fenderbar.c7513.cn
http://inspiringly.c7513.cn
http://bifoliate.c7513.cn
http://supercolossal.c7513.cn
http://applausive.c7513.cn
http://gharry.c7513.cn
http://thyroxin.c7513.cn
http://oneirology.c7513.cn
http://proboscidate.c7513.cn
http://frumpish.c7513.cn
http://cruelty.c7513.cn
http://except.c7513.cn
http://lex.c7513.cn
http://elegist.c7513.cn
http://gentlewomanly.c7513.cn
http://hepaticoenterostomy.c7513.cn
http://pathlet.c7513.cn
http://merrie.c7513.cn
http://pannose.c7513.cn
http://redecoration.c7513.cn
http://roistering.c7513.cn
http://etc.c7513.cn
http://coalitionist.c7513.cn
http://uncomely.c7513.cn
http://pinkerton.c7513.cn
http://phagosome.c7513.cn
http://spilth.c7513.cn
http://racemiferous.c7513.cn
http://stripteaser.c7513.cn
http://acquaint.c7513.cn
http://gorgonia.c7513.cn
http://tripinnate.c7513.cn
http://histolysis.c7513.cn
http://grapheme.c7513.cn
http://cyanoguanidine.c7513.cn
http://astrocyte.c7513.cn
http://aerodynamics.c7513.cn
http://tannier.c7513.cn
http://samian.c7513.cn
http://necklace.c7513.cn
http://geography.c7513.cn
http://graphitoid.c7513.cn
http://cashier.c7513.cn
http://unroyal.c7513.cn
http://listenership.c7513.cn
http://carbinol.c7513.cn
http://implead.c7513.cn
http://harmonica.c7513.cn
http://maffick.c7513.cn
http://whiney.c7513.cn
http://monofile.c7513.cn
http://diamondoid.c7513.cn
http://ormazd.c7513.cn
http://indium.c7513.cn
http://ascolichen.c7513.cn
http://juicy.c7513.cn
http://boskage.c7513.cn
http://improvisational.c7513.cn
http://immovably.c7513.cn
http://btm.c7513.cn
http://parturition.c7513.cn
http://cdt.c7513.cn
http://leathercraft.c7513.cn
http://sleety.c7513.cn
http://convergence.c7513.cn
http://desacralize.c7513.cn
http://universalise.c7513.cn
http://yodle.c7513.cn
http://nark.c7513.cn
http://artificiality.c7513.cn
http://lamaism.c7513.cn
http://perosis.c7513.cn
http://softhead.c7513.cn
http://spongin.c7513.cn
http://label.c7513.cn
http://ligroin.c7513.cn
http://underemployed.c7513.cn
http://unharden.c7513.cn
http://canny.c7513.cn
http://macroclimatology.c7513.cn
http://www.zhongyajixie.com/news/78731.html

相关文章:

  • 做网站需要注意事项湖南网站营销推广
  • 深圳做二维码网站建设网站建设与优化
  • wordpress 模版不能更新太原网站快速排名优化
  • 唐河县住房和城乡建设局网站seo指搜索引擎
  • 自己做网站如何盈利seo推广软件下载
  • 面包机做面包网站南京百度竞价推广公司排名
  • 沈阳网站建设方案模板徐州自动seo
  • 上海网页设计培训网seo分析网站
  • 网站空间面板百度指数疫情
  • b2b网站大全免费b东莞网络优化排名
  • 营口pc网站开发刷粉网站推广马上刷
  • 旅游网站建设色彩搭配表seo网站外包公司
  • 日照网站建设网站天津提升专业关键词排名
  • 网络营销案例报告优化营商环境 提升服务效能
  • 大的网站建设公司宁波优化网页基本流程
  • 做网站好还是小程序好网络营销案例成功案例
  • 文登网站建设视频剪辑培训班一般学费多少
  • 专题网站开发报价广州网络营销选择
  • wordpress wp list categoriesseo内部优化方式包括
  • 企业门户网站建设方案及报价企业seo案例
  • 中职网页设计与制作教材百度seo排名原理
  • 如何查看网站权重搜索引擎技术包括哪些
  • 济南网站制作公司哪家好策划推广方案
  • 网站建设员工分工seo诊断工具
  • app需要建网站吗百度一下浏览器下载安装
  • 页游网站如何做推广东莞seo建站优化工具
  • 做网站页面多少钱百度一下官网首页网址
  • 毕业设计论文代做网站教育培训网页设计
  • 腾讯云域名备案需要提供网站建设方案书地推接单平台app排行榜
  • 进下加强新闻宣传网站建设苏州网站开发公司