媒体大数据 色彩提取

代码:

import numpy as np
import os
from PIL import Image
from scipy.cluster.vq import vq, kmeans, whiten
import matplotlib.pyplot as plt
def colordata(filename,n=3):
    img=Image.open(filename)
    img=img.rotate(0)
    img.thumbnail((200,200))
    w,h=img.size
    print(w,h) 
    print('w*h=',w*h)
    plt.axis('off')
    plt.imshow(img)
    plt.show()
    points=[]
    for count,color in img.getcolors(w*h):
        points.append(color)
    return points
def kmeansFun(data,n):
    
    data=np.array(data,dtype=float)  #聚类需要是Float或者Double
    center_init = np.array(data[0:n])   #初始聚类中心
    print(type(center_init))

    print(type(center_init))   
    print("Center_init: \n",center_init)
   
    centers, loss = kmeans(data, n) #   n是聚类中心个数
    # 可以写kmeans(wf,2), 2表示两个质心,同时启用iter参数
    print("Centers:", centers)
    print("Loss: ", loss)

    plt.scatter(data[:,0], data[:,1], c='g')
    plt.scatter(centers[:, 0], centers[:, 1], c='r')
    plt.show()
os.chdir("F:\\图片\\")
imgdata=colordata("胡歌.jpg")
kmeansFun(imgdata,5)

效果

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值