普陀做网站手机网站制作软件
文章目录
- 环境配置
- 代码测试
环境配置
(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])
至此,结束