稀疏光流法跟中移动物体、监督学习聚类、K均值聚类、加载深度神经网络模型、深度神经网络模型的使用

目录

1、稀疏光流法跟中移动物体

2、监督学习聚类

3、K均值聚类

4、加载深度神经网络模型

5、深度神经网络模型的使用


1、稀疏光流法跟中移动物体

 

//稀疏光流法跟中移动物体
vector<Scalar> color_lut;//颜色查找表
void draw_lines(Mat &image, vector<Point2f> pt1, vector<Point2f> pt2)
{RNG rng(5000);if (color_lut.size() < pt1.size()){for (size_t t = 0; t < pt1.size(); t++){color_lut.push_back(Scalar(rng.uniform(0, 255), rng.uniform(0, 255),rng.uniform(0, 255)));}}for (size_t t = 0; t < pt1.size(); t++){line(image, pt1[t], pt2[t], color_lut[t], 2, 8, 0);}
}
int test6()
{VideoCapture capture("F:/testMap/lolTFT.mp4");Mat prevframe, prevImg;if (!capture.read(prevframe)){cout << "请确认输入视频文件是否正确" << endl;return -1;}cvtColor(prevframe, prevImg, COLOR_BGR2GRAY);//角点检测相关参数设置vector<Point2f> Points;double qualityLevel = 0.01;int minDistance = 10;int blockSize = 3;bool useHarrisDetector = false; double k = 0.04;int Corners = 5000;//角点检测goodFeaturesToTrack(prevImg, Points, Corners, qualityLevel, minDistance,Mat(), blockSize, useHarrisDetector, k);//稀疏光流检测相关参数设置vector<Point2f> prevPts;//前一帧图像角点坐标vector<Point2f> nextPts;//当前帧图像角点坐标vector<uchar> status;//检点检测到的状态vector<float> err;TermCriteria criteria = TermCriteria(TermCriteria::COUNT + TermCriteria::EPS, 30, 0.01);double derivlambda = 0.5;int flags = 0;//初始状态的角点vector<Point2f> initPoints;initPoints.insert(initPoints.end(), Points.begin(), Points.end());//前一帧图像中的角点坐标prevPts.insert(prevPts.end(), Points.begin(), Points.end());while (true){Mat nextframe, nextImg;if (!capture.read(nextframe)){break;}imshow("nextframe", nextframe);//光流跟踪cvtColor(nextframe, nextImg, COLOR_BGR2GRAY);calcOpticalFlowPyrLK(prevImg, nextImg, prevPts, nextPts, status, err,Size(31, 31), 3, criteria, derivlambda, flags);//判断角点是否移动,如果不移动就删除size_t i, k;for (i = k = 0; i < nextPts.size(); i++){//距离与状态测量double dist = abs(prevPts[i].x - nextPts[i].x) + abs(prevPts[i].y - nextPts[i].y);if (status[i] && dist > 2){prevPts[k] = prevPts[i];initPoints[k] = initPoints[i]; nextPts[k++] = nextPts[i];circle(nextframe, nextPts[i], 3, Scalar(0, 255, 0), -1, 8);}}//更新移动角点数目nextPts.resize(k);prevPts.resize(k);initPoints.resize(k);//绘制跟踪轨迹draw_lines(nextframe, initPoints, nextPts);imshow("result", nextframe);char c = waitKey(50);if (c == 27){break;}//更新角点坐标和前一帧图像std::swap(nextPts, prevPts);nextImg.copyTo(prevImg);//如果角点数目少于30,就重新检测角点if (initPoints.size() < 30){goodFeaturesToTrack(prevImg, Points, Corners, qualityLevel,minDistance, Mat(), blockSize, useHarrisDetector, k);initPoints.insert(initPoints.end(), Points.begin(), Points.end());prevPts.insert(prevPts.end(), Points.begin(), Points.end());printf("total feature points : %d\n", prevPts.size());}}waitKey(0);return 0;
}

2、监督学习聚类

 

 

 

 

//监督学习聚类
int test7()
{Mat img = imread("F:/testMap/digits.png"); Mat gray;cvtColor(img, gray, COLOR_BGR2GRAY);//分割为160个cellsMat images = Mat::zeros(5000, 400, CV_8UC1);Mat labels = Mat::zeros(5000, 1, CV_8UC1);int index = 0;Rect numberImg;numberImg.x = 0;numberImg.height = 1;numberImg.width = 400;for (int row = 0; row < 50; row++){//从图像中分割出20×20的图像作为独立数字图像int label = row / 5;int datay = row * 20;for (int col = 0; col < 100; col++){int datax = col * 20;Mat number = Mat::zeros(Size(20, 20), CV_8UC1);for (int x = 0; x < 20; x++){for (int y = 0; y < 20; y++){number.at<uchar>(x, y) = gray.at<uchar>(x + datay, y + datax);}}//将二维图像数据转成行数据Mat row = number.reshape(1, 1);cout << "提取第"<< index + 1 <<"个数据" << endl; numberImg.y = index;//添加到总数据中row.copyTo(images(numberImg));//记录每个图像对应的数字标签labels.at<uchar>(index, 0) = label;index++;}}imwrite("所有数据按行排列结果.png", images); imwrite("标签. png", labels);//加载训练数据集images.convertTo(images,CV_32FC1); labels.convertTo(labels,CV_32SC1);Ptr<ml::TrainData> tdata = ml::TrainData::create(images,ml::ROW_SAMPLE, labels);//创建K近邻类Ptr<KNearest> knn = KNearest::create();knn->setDefaultK(5);//每个类别拿出5个数据knn->setIsClassifier(true);//进行分类//训练数据knn->train(tdata);//保存训练结果knn->save("knn_model.ym1");//输出运行结果提示cout << "己使用K近邻完成数据训练和保存" << endl;waitKey(0);return 0;
}

3、K均值聚类

4、加载深度神经网络模型

5、深度神经网络模型的使用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/26653.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【已解决】pcl引用头文件convolution_3d.hpp时报错

在做pcl的高斯滤波/卷积滤波的时候&#xff0c;引用convolution_3d.hpp出现问题,报下面的错误 当前pcl版本号为pcl1.12.1 错误内容 严重性 代码 说明 文件 行 错误 C2143 语法错误: 缺少“;”(在“<”的前面) C:\pcl12\PCL 1.12.1\include\pcl-1.12\pcl\filters\con…

机器学习实战 | 深度学习初级项目学习和总结

目录 简介神经网络类型和用法总结1. 卷积神经网络CNN特点结构用处 2. 循环神经网络RNN特点结构用处 3. 长短期记忆网络LSTM特点结构用处 基于Keras的神经网络用法总结1. 创建2. 编译3. 训练4. 保存5. 预测 简介 准备写个系列博客介绍机器学习实战中的部分公开项目。首先从初级…

安卓开发错误记录

1、报错FATAL EXCEPTION: main 运行出现报错 原因&#xff1a;没有在AndroidManifest声明页面 声明实现应用部分可视化界面的 Activity&#xff0c;必须使用 AndroidManifest 中的 元素表示所有 Activity。系统不会识别和运行任何未进行声明的Activity。 如果在AndroidMainife…

90%的人都理解错了HTTP中GET与POST的区别

Get和Post是HTTP请求的两种基本方法&#xff0c;要说它们的区别&#xff0c;接触过WEB开发的人都能说出一二。 最直观的区别就是Get把参数包含在URL中&#xff0c;Post通过request body传递参数。 你可能自己写过无数个Get和Post请求&#xff0c;或者已经看过很多权威网站总结…

【Atcoder】 [ARC149D] Simultaneous Sugoroku

题目链接 Atcoder方向 Luogu方向 题目解法 首先可以观察到一个 s i m p l e simple simple 的性质&#xff1a;两个相反数每次移动到的位置也是相反数 同时因为坐标的范围较小&#xff0c;所以可以考虑维护一部分位置的信息&#xff0c;来推出其他与它对称的点的信息 首先维…

2. CSS3的新特性

2.1 CSS3的现状 ●新增的CSS3特性有兼容性问题, ie9才支持 ●移动端支持优于PC端 ●不断改进中 ●应用相对广泛 ●现阶段主要学习: 新增选择器和盒子模型以及其他特性 CSS3给我们新增了选择器,可以更加便捷,更加自由的选择目标元素&#xff1a; 1.属性选择器 2.结构伪类选择器…

Android之Intent

意图介绍 一个意图(Intent)对象包含了目标组件、动作、数据、类别、附加数据、标志六个部分。 目标组件 目标组件可以帮助应用发送显式意图调用请求。在创建Intent时&#xff0c;可以通过setComponent方法来设置一个组件&#xff0c;如&#xff1a; //设置组件 intent.setC…

【Linux C】fseek函数使用小结

0x00 前言 演示使用的Linux版本&#xff08;#cat /etc/issue&#xff09;&#xff1a;Ubuntu 18.04.6 LTS \n \l 最后更新日期&#xff1a;2023.7.17 0x01 fseek函数使用小结 1.函数描述 设置stream文件的位置指针偏移到指定位置1。 2.声明 #include <stdio.h> in…

ceph安装部署

Ceph 简介 存储基础 单机存储设备 单机存储的问题 分布式存储的类型 分布式存储&#xff08;软件定义的存储 SDS&#xff09; Ceph 架构 Ceph 核心组件 ​编辑 Pool中数据保存方式支持两种类型 OSD 存储后端 Ceph 数据的存储过程 Ceph 集群部署 基于 ceph-deploy …

Zookeeper集群

Zookeeper集群 一、Zookeeper 概述Ⅰ、Zookeeper 定义&#xff1a;Ⅱ、Zookeeper 工作机制Ⅲ、Zookeeper 特点Ⅳ、Zookeeper 数据结构Ⅴ、Zookeeper 应用场景Ⅵ、Zookeeper 选举机制 二、部署 Zookeeper 集群Ⅰ、安装前准备Ⅱ、安装Zookeeper 三、部署kafka 集群Ⅰ、下载安装包…

Fiddler抓包使用简介

目录 Fiddler简介 请求抓包 抓取PC端HTTPS请求 抓取移动端请求 请求查看 发送请求 Mock接口 断点调试 弱网模拟 请求重放 修改HOSTS 总结&#xff1a; Fiddler简介 Fiddler是一款免费的Windows平台的抓包工具&#xff0c;功能强大&#xff0c;使用简单。Fiddler抓…

IDEA运行TOMCAT出现404

就这种问题&#xff0c;每个人的原因都不一定一样&#xff0c;我出现这种问题的解决方法在这里记录一下。顺便把我的配置记录一下。 除了本文的问题&#xff0c;还有可能是默认打开的文件名错了&#xff0c;或者端口被占用。 软件版本IDEA2023 TOMCAT9 亲测&#xff1a;IDE…