pca图像压缩python_Python中基于PCA的图像聚类与降维

该博客介绍了如何在Python中使用PCA进行图像压缩和降维,并结合K均值聚类算法进行图像分类。通过加载图像数据,将图像转换为二维数组并应用KMeans,作者展示了如何调整PCA的维度,以降低到400、200、50、5和2维。最终,通过计算调整后的兰德得分评估了聚类精度。
摘要由CSDN通过智能技术生成

我正在对图像数据集进行K均值聚类。首先,我加载图像并存储在numpy数组中。总共有24张图片。我创建的img_数组的形状是(243004003)。运行K意味着,我把它转换成二维数组,现在的形状是(24360000)。我得到了一个0.57的修正后的蓝度分数。在

我不知道,如何使用主成分分析和降维,然后比较图像的聚类精度。在

现在,我需要使用PCA来将维度降到400维,200维,50维,5维,最后是2维。在path = "C://Users/shivam/Desktop/data//"

os.chdir(path)

for f in os.listdir('.'):

if f.endswith('.jpg'):

img = Image.open(f)

data = np.asarray( img, dtype='uint8' )

img_array.append(data)

df = pd.DataFrame({'image_arrays':img_array})

df['id'] = range(1, len(df) + 1)

label_list = ['nature','nature','nature','nature','nature','nature','sunset','sunset','sunset','sunset','sunset','sunset','sunset','sunset','sunset','water','water','water','water','water','water','water','water','water']

df.head()

img_arr_2D = img_arr.reshape(24,120000)

import numpy as np

import matplotlib.pyplot as plt

from matplotlib import style

style.use("ggplot")

from sklearn.cluster import KMeans

X = img_array_2D

kmeans = KMeans(n_clusters=3, max_iter= 100)

kmeans.fit(X)

centroid = kmeans.cluster_centers_

labels = kmeans.labels_

colors = ["g.","r.","c."]

for i in range(len(X)):

print ("coordinate:" , X[i], "label:", labels[i])

plt.plot(X[i][0],X[i][1],colors[labels[i]],markersize=10)

plt.show()

classes = [0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2]

labels = kmeans.labels_

from sklearn.metrics.cluster import adjusted_rand_score

adjusted_rand_score(classes, labels)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值