栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

图片处理后进行Kmeans聚类

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

图片处理后进行Kmeans聚类

import random
from sklearn import datasets
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import cv2

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from sklearn.cluster import KMeans
from sklearn.preprocessing import StandardScaler
from mpl_toolkits.mplot3d import Axes3D

def ComMatrixRGB(f,filename=""):
    X = []
    for i,v1 in enumerate(f):
        for j,v2 in enumerate(v1):
            #print(j,v2)
            X.append(list([int(v2[0]),int(v2[1]),int(v2[2])]))
    return X



def main():
    f1 = cv2.imread("11.png")
    data = np.array(ComMatrixRGB(f1)[:])
    #data = np.resize(f1,(f1.shape[1]*f1.shape[0],f1.shape[2]))可以替换上一行
 
    #标准化
    transfer = StandardScaler()
    data_new = transfer.fit_transform(data)
    data_new
    #预估计流程
    estimator = KMeans(n_clusters = 6)
    estimator.fit(data_new)
    y_pred = estimator.predict(data_new)
    #也可以不预测
    #cluster = KMeans(n_clusters = 9).fit(data_new)
    #y_pred = cluster.labels_s
    #质心 
    #centroid = cluster.cluster_centers_
    #centroid.shape

    fig = plt.figure()
    ax = Axes3D(fig)
    for i in range(9):
      ax.scatter3D(data_new[y_pred == i,0],data_new[y_pred == i,1],data_new[y_pred == i,2],marker = ".")
    ax.view_init(elev = 60,azim = 30)
    ax.set_zlabel('Z')
    ax.set_ylabel('Y')
    ax.set_xlabel('X')
    plt.show()
     
 
 
if __name__ == "__main__":
    main()

说明,不能直接对图片进行处理,不支持超过二维的矩阵数组操作,先进行维度转换。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/286835.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号