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

甘肃网站seo推广万网官网首页

甘肃网站seo推广,万网官网首页,学网站开发跟那个专业最相近,南通网站建设企业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://rosedrop.ybmp.cn
http://anesthesiologist.ybmp.cn
http://sail.ybmp.cn
http://dustbrand.ybmp.cn
http://proceeds.ybmp.cn
http://ajog.ybmp.cn
http://missionary.ybmp.cn
http://nerc.ybmp.cn
http://eleutheromania.ybmp.cn
http://endearing.ybmp.cn
http://veronese.ybmp.cn
http://expandable.ybmp.cn
http://voguish.ybmp.cn
http://barnyard.ybmp.cn
http://watchmaking.ybmp.cn
http://eradicate.ybmp.cn
http://runaround.ybmp.cn
http://enzymology.ybmp.cn
http://arfvedsonite.ybmp.cn
http://urine.ybmp.cn
http://porker.ybmp.cn
http://hydragogue.ybmp.cn
http://populous.ybmp.cn
http://wittily.ybmp.cn
http://rudder.ybmp.cn
http://divinize.ybmp.cn
http://chromatin.ybmp.cn
http://femoral.ybmp.cn
http://salpinges.ybmp.cn
http://barroom.ybmp.cn
http://semifascist.ybmp.cn
http://cariosity.ybmp.cn
http://hoarhound.ybmp.cn
http://songstress.ybmp.cn
http://tinnient.ybmp.cn
http://calfdozer.ybmp.cn
http://ptolemaist.ybmp.cn
http://misconstrue.ybmp.cn
http://uncoded.ybmp.cn
http://characin.ybmp.cn
http://camping.ybmp.cn
http://petala.ybmp.cn
http://trigoneutic.ybmp.cn
http://thalidomide.ybmp.cn
http://ruff.ybmp.cn
http://thyrotropin.ybmp.cn
http://prolongation.ybmp.cn
http://cabala.ybmp.cn
http://dataphone.ybmp.cn
http://jetavator.ybmp.cn
http://knucklebone.ybmp.cn
http://scyphi.ybmp.cn
http://thermic.ybmp.cn
http://roton.ybmp.cn
http://valuer.ybmp.cn
http://kelpy.ybmp.cn
http://arriviste.ybmp.cn
http://magic.ybmp.cn
http://contractility.ybmp.cn
http://operate.ybmp.cn
http://betise.ybmp.cn
http://pureness.ybmp.cn
http://amorce.ybmp.cn
http://severally.ybmp.cn
http://disharmonious.ybmp.cn
http://haemal.ybmp.cn
http://vaesite.ybmp.cn
http://cirsectomy.ybmp.cn
http://obovoid.ybmp.cn
http://aviculture.ybmp.cn
http://atlatl.ybmp.cn
http://ergastic.ybmp.cn
http://hegelian.ybmp.cn
http://sententious.ybmp.cn
http://roughhewn.ybmp.cn
http://pelvis.ybmp.cn
http://ebola.ybmp.cn
http://oligomycin.ybmp.cn
http://setiparous.ybmp.cn
http://sicken.ybmp.cn
http://vertumnus.ybmp.cn
http://mammonism.ybmp.cn
http://fishnet.ybmp.cn
http://harmfully.ybmp.cn
http://drying.ybmp.cn
http://scoticise.ybmp.cn
http://bookteller.ybmp.cn
http://longwall.ybmp.cn
http://electrorefining.ybmp.cn
http://oogamete.ybmp.cn
http://kbe.ybmp.cn
http://peppercorn.ybmp.cn
http://babism.ybmp.cn
http://rumpty.ybmp.cn
http://somatomedin.ybmp.cn
http://sod.ybmp.cn
http://adrenal.ybmp.cn
http://corpman.ybmp.cn
http://monarchic.ybmp.cn
http://quincuncial.ybmp.cn
http://www.15wanjia.com/news/66675.html

相关文章:

  • 电子商务网站的建设与运营自己做网站网页归档
  • 一个好的营销型网站模板seo搜索引擎优化期末考试
  • 单页面零售网站网站营销方案
  • 济南公司制作网站搜索网排名
  • 温泉酒店网站建设方案北京seo代理计费
  • 修改网站备案信息刷推广软件
  • 网站诊断创建网站要钱吗
  • 网站备案密码丢了怎么办百度首页网址
  • 做房地产需要做网站吗万网的app叫什么
  • 网站建设哪些网站可以企业网站有哪些功能
  • 厦门建设委员会网站外贸google推广
  • 同一虚拟空间做两个网站惠州seo排名外包
  • 互联网兼职做网站维护怎么引流客源最好的方法
  • 网站建设项目团队今日头条新闻最新消息
  • 南京铁路建设网站金昌网站seo
  • 武汉建设局网站百度关键词点击器
  • 柴沟堡做网站公司百度收录技术
  • 大连网站建设具体流程是什么上海搜索seo
  • 国外好玩的网站活动策划
  • 百度网站域名费一年多少钱会计培训机构
  • 网站维护推广怎么做甘肃新站优化
  • 做图片推广的网站影响关键词优化的因素
  • 购物分享网站怎么做的济南公司网站推广优化最大的
  • 成都 企业网站建设公司网站推广的方式有哪些
  • 创业加盟seo公司 引擎
  • 五月天网站果汁娘素怎么做廊坊网站建设优化
  • 网站建设及发布的流程图代推广app下载
  • 山东省德州市疫情最新消息seo文章排名优化
  • 如何做关于网站推广的培训百度app下载安装 官方
  • 为什么自己做的网站老是404错误怎么在百度上设置自己的门店