使用词袋模型(BoW)测试提取图像的特征点和聚类中心

文章目录

  • 环境配置
  • 代码测试


环境配置

(1) 导入opencv,参考链接

https://blog.csdn.net/Aer_7z/article/details/132612369

(2) 安装numpy
激活虚拟环境的前提下,输入:

pip install numpy

(3) 安装sklearn
激活虚拟环境的前提下,输入:

pip install scikit-learn

代码测试

在pycharm端运行下列代码(在同一目录下放置一张名为image.jpg的图片)。

import cv2
import numpy as np
from sklearn.cluster import KMeans# 加载图像
image = cv2.imread("image.jpg", 0)  # 使用灰度模式加载图像# 创建 SIFT 特征提取器对象
sift = cv2.SIFT_create()# 检测关键点和计算特征描述符
keypoints, descriptors = sift.detectAndCompute(image, None)# 将特征描述符存储在 features 变量中
features = np.array(descriptors)# 假设你已经提取了局部特征并将其存储在 features 变量中,features 是一个 N × D 的矩阵,
# 其中 N 是特征数量,D 是每个特征的维度# 聚类算法的参数设置
num_clusters = 100  # 聚类簇的数量# 创建聚类算法对象
kmeans = KMeans(n_clusters=num_clusters)# 执行聚类算法
kmeans.fit(features)# 获取每个局部特征的聚类标签
labels = kmeans.labels_# 获取聚类中心
centroids = kmeans.cluster_centers_# 输出每个特征的聚类标签和聚类中心
for i in range(len(features)):print("特征", i, "的聚类标签:", labels[i])print("\n聚类中心:")
for i in range(num_clusters):print("聚类", i, "的中心:", centroids[i])

至此,结束

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

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

相关文章

数据结构前言

一、什么是数据结构? 数据结构是计算机存储、组织数据的方式。数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。 上面是百度百科的定义,通俗的来讲数据结构就是数据元素集合与数据元素集合或者数据元素与数据元素之间的组成形式。 举个…

vs中git提交合并分支的步骤记录

vs打开终端 PS D:\project\et_lower4_driver> git pull Already up to date. PS D:\project\et_lower4_driver> git branch * kiyun_usb7851 master PS D:\project\et_lower4_driver> git checkout master Switched to branch master Your branch is up to date wit…

MySQL与postgreSQL数据库的区别

MySQL 是一个流行的开源关系型数据库管理系统,具有以下优势: 开源和免费:MySQL 是一个开源软件,允许用户免费下载、使用和修改。它的免费版本(Community Edition)提供了广泛的功能,适用于大多数…

操作系统(OS)与系统进程

操作系统(OS)与系统进程 冯诺依曼体系结构操作系统(Operator System)进程基本概念进程的描述(PCB)查看进程通过系统调用获取进程标示符(PID)通过系统调用创建进程(fork)进程状态&…

小程序进阶-env(safe-area-inset-bottom)的使用

一、简介 env(safe-area-inset-bottom)和env(safe-area-inset-top)是CSS中的变量,用于获取设备底部和顶部安全区域的大小。 所谓的安全区域就是指在iPhone X及以上的设备中,为避免被屏幕的“刘海”和“Home Indicator”所遮挡或者覆盖的有效区域区域&am…

UICollectioView 使用集合

文章目录 一、前言二、UICollectionView基础知识2.1多个对象协作而成2.2 DataSource与Delegate三、UICollectionView 常用操作3.1 允许cell多选、 设置默认选中、选中与取消选中控制3.2 显示编辑按钮3.3 layouts 布局之间的转场3.4 插入、删除、移动 sections 和 items3.5 更新…

解决解析maven依赖加载卡住问题

首先找到用户设置文件的位置&#xff1a; 根据位置查找文件&#xff0c;没有则创建。 修改maven的默认镜像为阿里云镜像。 <mirror><id>alimaven</id><name>aliyun maven</name><url>http://maven.aliyun.com/nexus/content/groups/pub…

实训笔记9.4

实训笔记9.4 git一、本地版本控制1.1 建立仓库1.2 添加到暂存区1.3 提交到历史区1.4 查看1.4.1 查看当前版本库状态1.4.2 查看版本日志信息1.4.3 查看版本的变更历史 1.5 撤销1.5.1 撤销工作区的修改1.5.2 撤销暂存1.5.3 历史穿梭 二、代码托管2.1 将本地仓库推送到远程平台2.2…

【C++】STL-函数对象 + 谓词

1.函数对象使用 #include <iostream> using namespace std;//STL-函数对象&#xff08;仿函数&#xff09;class MyAdd { public:int operator()(int v1, int v2){return v1 v2;} }; //1、函数对象在使用时&#xff0c;可以像普通函数那用调用&#xff0c;可以有参数&am…

视频汇聚/视频云存储/视频监控管理平台EasyCVR接入海康SDK协议后无法播放该如何解决?

开源EasyDarwin视频监控/安防监控/视频汇聚EasyCVR能在复杂的网络环境中&#xff0c;将分散的各类视频资源进行统一汇聚、整合、集中管理&#xff0c;在视频监控播放上&#xff0c;视频安防监控汇聚平台可支持1、4、9、16个画面窗口播放&#xff0c;可同时播放多路视频流&#…

vue 设置全局鼠标移动事件

要设置全局鼠标移动事件&#xff0c;可以使用 Vue 的 mixin 实现。在 mixin 中&#xff0c;我们可以使用 $on 方法监听 mousemove 事件&#xff0c;并在组件销毁时使用 $off 方法移除监听器&#xff0c;以避免内存泄漏。以下是一个例子&#xff1a; // 在全局中注册一个 mixin…

基于nRF52840 Dongle配合Wireshark对Mesh网络抓包并解析(Nordic)

Mesh网络抓包解析 准备说明配置过滤解密分析 准备 1&#xff09;nRF52840 Dongle 2&#xff09;Mesh节点 3&#xff09;手机作为配网器&#xff08;苹果手机安装nRF Mesh APP&#xff09; 说明 1&#xff09;节点使用的例程目录&#xff1a;nrf5sdkformeshv500src\examples\…

java八股文面试[多线程]——阻塞队列

阻塞队列大纲&#xff1a; 什么是阻塞队列 阻塞队列&#xff1a;从名字可以看出&#xff0c;他也是队列的一种&#xff0c;那么他肯定是一个先进先出&#xff08;FIFO&#xff09;的数据结构。与普通队列不同的是&#xff0c;他支持两个附加操作&#xff0c;即阻塞添加和阻塞删…

HZOJ#236. 递归实现组合型枚举

题目描述 ​ 从 1−n 这 n 个整数中随机选取 m个&#xff0c;每种方案里的数从小到大排列&#xff0c;按字典序输出所有可能的选择方案。 输入 ​ 输入两个整数 n,m。&#xff08;1≤m≤n≤10&#xff09; 输出 ​ 每行一组方案&#xff0c;每组方案中两个数之间用空格分隔…

【校招VIP】产品分析之活动策划宣传

考点介绍&#xff1a; 产品的上线运营是非常重要的。应该来说好的产品都是运营出来的&#xff0c;在一运营过程中难免会依靠策划活动来提高产品知名度、用户数。用户粘度等等指标一&#xff0c;如何策划一个成功的活动就显得非常重要。 产品分析之活动策划宣传-相关题目及解析…

存储数据恢复- raid5多块硬盘出现坏道的数据恢复案例

存储数据恢复环境&#xff1a; 某单位一台存储&#xff0c;1个机头4个扩展柜&#xff0c;有两组分别由27块和23块硬盘组建的RAID5阵列。其中由27块磁盘组建的那一组RAID5阵列崩溃&#xff0c;这组RAID5阵列存放是Oracle数据库文件。存储系统上层共划分了11个卷。 存储故障&…

爬虫到底难在哪里?

目录 爬虫到底难在哪里 怎么学习爬虫 注意事项 爬虫工具 总结 学习Python爬虫的难易程度因人而异&#xff0c;对于具备编程基础的人来说&#xff0c;学习Python爬虫并不困难。Python语言本身比较简单易学&#xff0c;适合初学者使用。 爬虫到底难在哪里 爬虫的难点主要包…

DevOps理念:开发与运维的融合

在现代软件开发领域&#xff0c;DevOps 不仅仅是一个流行的词汇&#xff0c;更是一种文化、一种哲学和一种方法论。DevOps 的核心理念是通过开发和运维之间的紧密合作&#xff0c;实现快速交付、高质量和持续创新。本文将深入探讨 DevOps 文化的重要性、原则以及如何在团队中实…

Vue中的指令

指令 指令 (Directives) 是带有 v- 前缀的特殊 attribute。指令 attribute 的值预期是单个 JavaScript 表达式。指令的职责是&#xff0c;当表达式的值改变时&#xff0c;将其产生的连带影响&#xff0c;响应式地作用于 DOM。 常用指令预期简短介绍v-showany显示隐藏元素&…

K8S:K8S自动化运维容器

目录 一.k8s概述 2.为什么要用K8S 3.作用及功能 4.k8s容器集群管理系统 二.K8S的特性 1.弹性伸缩 2.自我修复 3.服务发现和复制均衡 4.自动发布和回滚 5.集中化配置管理和秘钥管理 6.存储编排 7.任务批量处理运行 三.K8S的集群架构 四.K8S的核心组件 1.Master组件 …