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

OpenCV自学笔记二十三:K近邻算法

K近邻算法(K-Nearest Neighbors,简称KNN)是一种常用的监督学习算法,可以用于分类和回归问题。在OpenCV中,KNN算法有相应的函数实现,主要包含在ml模块中。

KNN算法的原理很简单,它基于样本之间的距离来进行分类或回归。对于分类问题,KNN算法将未知样本与训练集中的样本逐个比较距离,并选择距离最近的K个邻居样本,根据这K个邻居样本的标签进行投票,将未知样本归类为票数最多的标签。对于回归问题,KNN算法将未知样本与训练集中的样本逐个比较距离,并选择距离最近的K个邻居样本,然后取这K个邻居样本的平均值作为未知样本的预测值。

在OpenCV中,KNN算法的函数为`cv.ml.KNearest_create()`。下面是一个使用KNN算法进行分类的示例代码:

import cv2 as cvimport numpy as np# 创建KNN对象knn = cv.ml.KNearest_create()# 准备训练数据trainData = np.array([[1, 1], [1, 3], [2, 2], [2, 4]], dtype=np.float32)responses = np.array([0, 0, 1, 1], dtype=np.float32)# 训练KNN模型knn.train(trainData, cv.ml.ROW_SAMPLE, responses)# 准备测试数据testData = np.array([[3, 1]], dtype=np.float32)# 使用KNN分类_, results, _, _ = knn.findNearest(testData, 1)print("结果:", results)

在上述示例中,我们首先创建了一个KNN对象。然后,准备训练数据`trainData`和对应的标签`responses`。接下来,使用`train()`函数对KNN模型进行训练。最后,准备测试数据`testData`,并使用`findNearest()`函数进行分类预测,其中参数1表示选择距离最近的1个邻居样本。

运行以上代码,将输出结果为`结果: [[0.]]`,表示测试数据被分类为标签0。

除了分类问题,KNN算法还可以用于回归问题。回归问题与分类问题类似,只是需要使用`cv.ml.KNearest_create()`创建的KNN对象设置`cv.ml.KNearest_REGRESSOR`标志,并且使用`findNearest()`函数的返回值来得到预测的连续值。

相关文章:

OpenCV自学笔记二十三:K近邻算法

K近邻算法(K-Nearest Neighbors,简称KNN)是一种常用的监督学习算法,可以用于分类和回归问题。在OpenCV中,KNN算法有相应的函数实现,主要包含在ml模块中。 KNN算法的原理很简单,它基于样本之间的…...

ChatGLM-中英对话大模型-6B试用说明

ChatGLM-中英对话大模型-6B试用说明 搭建环境下载模型测试模型结果 搭建环境 pip install modelscope1.4.3 -f https://modelscope.oss-cn-beijing.aliyuncs.com/releases/repo.html pip install protobuf3.20.0 transformers4.27.1 icetk cpm_kernels下载模型 from modelsco…...

小白入门pytorch(一)

本文为小白入门Pytorch中的学习记录博客 小白入门pytorch 基础知识 导入torch,查看torch版本 import torch print(torch.__version__)输出结果: 1.12.1cu113张量 在pytorch中,张量(tensor)是最基本的数据结构。 …...

【STM32笔记】HAL库I2C通信配置、读写操作及通用函数定义

【STM32笔记】HAL库I2C通信配置、读写操作及通用函数定义 文章目录 I2C协议I2C配置I2C操作判断I2C是否响应I2C读写 附录:Cortex-M架构的SysTick系统定时器精准延时和MCU位带操作SysTick系统定时器精准延时延时函数阻塞延时非阻塞延时 位带操作位带代码位带宏定义总…...

Direct3D模板缓存

模板缓存是一个用于获得某种特效的离屏缓存,模板缓存的分辨率与后台缓存和深度缓存的分辨率完全相同,所以像素也是一一对应的,模板缓存允许我们动态的,有针对性的决定是否将某个像素写入后台缓存中。 例如实现镜面效果时&#xf…...

在windows上执行ssh-keygen报错Bad permissions

在windows上执行ssh-keygen报错Bad permissions:如下 C:\Users\xiaoming>ssh-keygen -p -m PEM -f C:\mywork\id_rsa Bad permissions. Try removing permissions for user: BUILTIN\\Users (S-1-6-92-143) on file C:/mywork/id_rsa.WARNING: UNPROTECTED PRIV…...

给Proxmox VE 虚拟机分配巨大分区惹麻烦

由于缺乏良好的规划,有开发人员直接在公有云采购一个容量超过100TB的NAS存储,使用过程中,数据的存储也没有规划,业务数据一股脑的写入到同一个目录,下边的子目录没有规律,用用户的图片、视频、访问日志、甚…...

数学建模——统计回归模型

一、基本知识 1、基本统计量 总体:研究对象的某个感兴趣的指标。样本:从总体中随机抽取的独立个体X1,X2,…,Xn,一般称(X1,…,Xn)为一个样本,可以看成一个n维随机向量,它的每一取组值(x1,…,xn)称为样本的观测值。统计…...

C++【个人笔记1】

1.C的初识 1.1 简单入门 #include<iostream> using namespace std; int main() {cout << "hello world" << endl;return 0; } #include<iostream>; 预编译指令&#xff0c;引入头文件iostream.using namespace std; 使用标准命名空间cout …...

博通强迫三星签不平等长约,被韩处罚1亿元 | 百能云芯

近日&#xff0c;博通&#xff08;Broadcom&#xff09;这家国际知名的半导体公司因其市场主导地位的滥用&#xff0c;遭到了韩国公平贸易委员会&#xff08;FTC&#xff09;的严厉制裁&#xff0c;罚款高达191亿韩元&#xff0c;约合人民币1.04亿元。这一惩罚背后的故事揭示了…...

版本控制 Sourcetree

Sourcetree软件做版本控制&#xff0c;小程序的代码和springboot项目的代码放到同一个文件夹下&#xff0c; 无脑安装就行 命名就用项目名bkd表示springboot项目名 项目命名xcx表示小程序 每次上传代码&#xff0c;一定要先拉下代码不然代码冲突处理起来比较麻烦...

题目 1059: 二级C语言-等差数列

题目描述 sum2581114…&#xff0c;输入正整数n&#xff0c;求sum的前n项和。样例输入 2样例输出 7 根据题目我们得知&#xff0c;求一个等差数列的和。 等差数列的下一项前一项d。d是等差。 根据这个直接求每一项&#xff0c;再加进sum的和&#xff0c;最后输出即可。 在本题中…...

HarmonyOS 如何使用异步并发能力进行开发

一、并发概述 并发是指在同一时间段内&#xff0c;能够处理多个任务的能力。为了提升应用的响应速度与帧率&#xff0c;以及防止耗时任务对主线程的干扰&#xff0c;HarmonyOS 系统提供了异步并发和多线程并发两种处理策略。 ● 异步并发是指异步代码在执行到一定程度后会被暂…...

时间格式化时候HH和hh的区别

SimpleDateFormat simpleDateFormatnew SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); simpleDateFormat.format(new Date()) HH&#xff08;大写&#xff09;&#xff1a;表示使用24小时制&#xff08;也称为军用时间制&#xff09;来表示小时。它的范围是从00到23。例…...

aliyunoss上传图片

依赖 <dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>3.8.1</version></dependency>配置文件 config:alioss:endpoint: oss-cn-shanghai.aliyuncs.com&#xff08;节点名 我…...

动手吧,vue数字动画

数字动画&#xff0c;有数字的地方都能用上&#xff0c;拿去吧&#xff01; 效果&#xff1a; 1、template部分 <template><div class"v-count-up">{{ dispVlaue }}</div> </template> 2、js部分 export default {data() {return {timer…...

Android12之仿Codec2.0实现传递编解码器组件本质(四十六)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药. 更多原创,欢迎关注:Android…...

MongoDB【部署 04】Windows系统实现MongoDB多磁盘存储

Windows系统实现多磁盘存储 1.为什么2.多磁盘存储2.1 数据库配置2.2 文件夹磁盘映射2.3 创建新的数据集 3.总结 1.为什么 这里仅针对只有一台Windows系统服务器的情景&#xff1a; 当服务器存储不足时&#xff0c;或者要接入更多的数据&#xff0c;就会挂载新磁盘&#xff0c…...

ruoyi框架使用自定义用户表登录

背景 有的时候我们做框架升级或改造的时候&#xff0c;需要用到原来的部分表&#xff0c;比如只是用ruoyi的框架&#xff0c;然后登录的用户逻辑还是想用自己的表&#xff0c;那么接下来这边文章将介绍修改逻辑。 修改教程 1、SysLoginController.java 大家找到这个login方…...

计算机视觉与深度学习-卷积神经网络-卷积图像去噪边缘提取-卷积-[北邮鲁鹏]

目录标题 参考学习链接卷积的定义卷积的性质叠加性平移不变性交换律结合律分配律标量 边界填充边界填充方法 - 常数填充最常用常数填充零填充&#xff08;zero padding&#xff09;拉伸镜像 卷积示例单位脉冲核无变化平移平滑锐化 卷积核平均卷积核高斯卷积核高斯卷积核定义高斯…...

从静电威胁到电路卫士:TVS选型实战与PCB防护布局

1. 静电威胁&#xff1a;电子产品的隐形杀手 第一次亲眼见到静电放电&#xff08;ESD&#xff09;毁掉芯片的场景&#xff0c;至今记忆犹新。那是在调试一块USB接口板时&#xff0c;同事刚摸到Type-C接口&#xff0c;屏幕突然蓝屏——价值2000元的FPGA就这么报废了。这种看不见…...

Bebas Neue 开源字体技术解析:几何美学与多平台兼容性实现

Bebas Neue 开源字体技术解析&#xff1a;几何美学与多平台兼容性实现 【免费下载链接】Bebas-Neue Bebas Neue font 项目地址: https://gitcode.com/gh_mirrors/be/Bebas-Neue Bebas Neue 是一款基于 SIL Open Font License 1.1 许可证的开源显示字体&#xff0c;专为标…...

不使用库函数,实现 strcpy,strcat,strcmp

文章目录 1、strcpy 原型2、strcmp 原型 1、strcpy 原型 char* strcpy(char* des, const char* source) {char* r des;assert((des ! NULL) && (source ! NULL));while((*r *source)!\0);return des; }可以自行实现&#xff1a; char* myStrcpy(char* dest, char* …...

3步解锁PotPlayer字幕翻译:让外语视频不再难懂

3步解锁PotPlayer字幕翻译&#xff1a;让外语视频不再难懂 【免费下载链接】PotPlayer_Subtitle_Translate_Baidu PotPlayer 字幕在线翻译插件 - 百度平台 项目地址: https://gitcode.com/gh_mirrors/po/PotPlayer_Subtitle_Translate_Baidu 还在为看不懂的外语视频字幕…...

中国县城 AI 小店遍地开花:是风口还是陷阱?加盟背后藏“割韭菜”套路

01. AI 赋能县城谁能想到&#xff0c;中国十八线县城的 AI 产业密度直逼硅谷。在县城老街上&#xff0c;能偶遇 AI 面馆、AI 自习室和 AI 送水站&#xff0c;招牌与外墙的违和感十足&#xff0c;山姆奥特曼看了或许会挠头。“任何行业都值得用 AI 重做一遍”&#xff0c;县城小…...

终极解决方案:VisualCppRedist AIO一站式修复Windows运行库问题

终极解决方案&#xff1a;VisualCppRedist AIO一站式修复Windows运行库问题 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否经常在Windows系统上遇到"…...

All-in-One Telegram机器人:加密货币监控与多功能集成部署指南

1. 项目概述 如果你和我一样&#xff0c;是个喜欢折腾各种效率工具&#xff0c;同时又对加密货币市场保持关注的玩家&#xff0c;那你肯定也经历过这样的场景&#xff1a;手机里塞满了各种功能的机器人——一个用来监控币价&#xff0c;一个用来下载视频&#xff0c;一个用来处…...

终极鼠标革命:如何用Mac Mouse Fix让你的普通鼠标超越苹果触控板体验

终极鼠标革命&#xff1a;如何用Mac Mouse Fix让你的普通鼠标超越苹果触控板体验 【免费下载链接】mac-mouse-fix Mac Mouse Fix - Make Your $10 Mouse Better Than an Apple Trackpad! 项目地址: https://gitcode.com/GitHub_Trending/ma/mac-mouse-fix 还在为macOS上…...

VINS-Mono跑EUROC数据集实战:如何解读Rviz可视化结果与评估轨迹精度?

VINS-Mono EUROC数据集实战&#xff1a;Rviz可视化与轨迹精度评估全解析 当你第一次在Rviz中看到VINS-Mono处理EUROC数据集生成的复杂点云和轨迹时&#xff0c;那种既兴奋又困惑的感觉我完全理解。作为一款开源的视觉惯性里程计(VIO)系统&#xff0c;VINS-Mono在无人机、移动机…...

房地产行业 Zoom 钓鱼攻击机理与防御体系研究

摘要 2026 年 5 月&#xff0c;美国加利福尼亚房地产协会&#xff08;C.A.R.&#xff09;发布预警&#xff0c;针对房产中介的新型 Zoom 钓鱼诈骗呈高发态势。攻击者依托房产门户网站房源信息&#xff0c;伪装成意向购房者发起虚假咨询&#xff0c;以沟通房源细节为由诱导中介点…...