一、聚类:物以类聚

数组可以进行聚类,并找到数组的聚类中心。使用的第三方库是scipy,需要pip install scipy,先安装该库。数组聚类代码:

import numpy as np
from scipy.cluster.vq import vq, kmeans, whiten
import matplotlib.pyplot as pltfe = np.array([[1.9,2.0],[1.7,2.5],[1.6,3.1],[0.1,0.1],[0.8,0.3],[0.4,0.3],[0.22,0.1],[0.4, 0.3],[0.4,0.5],[1.8,1.9]])book = np.array((fe[0], fe[1]))
print(type(book))
print("book:\n",book)codebook, distortion = kmeans(fe,book)
print("codebook:",codebook)
print("distortion:",distortion)plt.scatter(fe[:,0],fe[:,1],c="g")
plt.scatter(codebook[:,0],codebook[:,1],c="r")
plt.show()#红色的为聚类中心

运行结果:

二、色彩聚类提取

图像颜色是由不同的RGB数值组成的,因此除了数字,图像色彩同样可以进行聚类。并利用之前学过的Pycharm flask框架,将结果加载到网页中显示。

思路是先生成图像缩略图,对缩略图聚类,得到每个点的RGB值,再利用算法将色彩聚类,并得到聚类中心。色彩聚类最常使用的算法是Kmeans。

K均值聚类算法:一种迭代求解的聚类分析算法,其步骤是,预将数据分为K组,则随机选取K个对象作为初始的聚类中心,然后计算每个对象与各个种子聚类中心之间的距离,把每个对象分配给距离它最近的聚类中心。聚类中心以及分配给它们的对象就代表一个聚类。每分配一个样本,聚类的聚类中心会根据聚类中现有的对象被重新计算。这个过程将不断重复直到满足某个终止条件。终止条件可以是没有(或最小数目)对象被重新分配给不同的聚类,没有(或最小数目)聚类中心再发生变化,误差平方和局部最小。

Python部分代码:

from flask import Flask,render_template
import numpy as np
from PIL import Image
from scipy.cluster.vq import vq, kmeans, whiten
import imageColorapp = Flask(__name__)#用缩略图聚类
def colorz(filename, n=3):img=Image.open(filename)img=img.rotate(-90)img.thumbnail((200,200))w,h=img.sizeprint(w,h)print('w*h=',w*h)points=[]for count,color in img.getcolors(w*h):points.append(color)return points#对色彩聚类
def kmeansColor(img,n):points=colorz(img,3)fe = np.array(points,dtype=float)codebook, distortion = kmeans(fe,n)centers=np.array(codebook,dtype=int)return centers@app.route("/")
def index():#genFrame()pic = "static/fall.png"imgcolors = imageColor.kmeansColor("static/fall.png",5)return render_template("imageColor.html", pic1=pic, imgcolors=imgcolors)if "__main__" == __name__ :app.run()

html部分代码:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>聚类色彩提取</title>
</head>
<body>聚类色彩提取<br><img height="400" src='static/fall.png'><br>{{imgcolors}}<br>{% for c in imgcolors %}<font style="color:rgb({{c[0]}},{{c[1]}},{{c[2]}})">色彩提取</font>{% endfor %}
</body>
</html>

运行结果:

Python聚类色彩提取——Scipy-kmeans相关推荐

  1. opencv python 主色彩提取

    opencv python 主色彩提取 一.KMeans是什么? 二.具体步骤 1.读入图像 2.建立KMenas模型 3.使用KMeans聚类 4.统计各个聚类比率 5.根据比率建立色卡 三.代码示 ...

  2. Python学习 | 2021-11-05 Scipy聚类色彩提取

    目录 一.聚类分析 1.聚类 2.Scipy中的聚类算法(K-Means) 3.聚类示例 完整代码: 运行结果: 函数使用: 二.图像色彩聚类 操作步骤: 完整代码: 运行结果: 三.合并至Flask ...

  3. Scipy-kmeans聚类色彩提取

    K-means聚类分析属于非层次聚类法的一种.首先选择某些记录作为凝聚点(可人为指定),按就近原则将其余记录向凝聚点凝集,计算出各个处室分类的中心位置(均值),用计算出的中心位置重新进行聚类,如此循环 ...

  4. 第七次作业整理(分镜+色彩提取/20211105)

    目录 分镜 shot.py 修改main.py ​ 色彩提取 原理 安装包的准备 生成缩略图 得到聚类中心 分镜 前面的内容中已经分别实现哈希均值和直方图分镜,以及pycharm的基本使用和逐帧提取, ...

  5. 【Python数据挖掘课程】三.Kmeans聚类代码实现、作业及优化

    这篇文章直接给出上次关于Kmeans聚类的篮球远动员数据分析案例,同时介绍这次作业同学们完成的图例,最后介绍Matplotlib包绘图的优化知识.         前文推荐:        [Pyth ...

  6. 聚类 python 代码_不足 20 行 Python 代码,高效实现 k-means 均值聚类算法

    下载好向圈APP可以快速联系圈友 您需要 登录 才可以下载或查看,没有帐号?立即注册 x 不足 20 行 Python 代码,高效实现 k-means 均值聚类算法-1.jpg (143.81 KB, ...

  7. python分层聚类集群合并_24、python分层聚类案例(scipy方法)

    目录 1.分层聚类算法 2.方法 3.分析步骤 4.案例 1.分层聚类算法 层次聚类算法又称为树聚类算法,它根据数据之间的距离,透过一种层次架构方式,反复将数据 进行聚合,创建一个层次以分解给定的数据 ...

  8. Python,OpenCV提取图片中的多个茄子种子轮廓,并按从左到右排序后显示

    Python,OpenCV提取图片中的多个茄子种子轮廓,并按从左到右排序后显示 1. 效果图 2. 源码 写这篇博客源于博友的提问,期望把下图中的多个茄子种子按从左到右的顺序提取出来: 1. 效果图 ...

  9. python聚类的结果显示_使用Python进行聚类

    微信公众号:岭南见闻 关注可了解更多的数据处理技巧.问题或建议,请公众号留言; 如果你觉得文章对你有帮助,欢迎赞赏 导入数据,进行聚类from sklearn.datasets import load ...

最新文章

  1. 从电影《蝴蝶效应》中学习回溯算法的核心思想
  2. c#让程序在WIN7下兼容模式运行
  3. 3638MySQL数据库应用答案_Mysql数据库多实例配置
  4. Laravel同时接收路由参数和查询字符串中的参数
  5. 最终,我还是放弃了字节50W开发offer,选择了测试开发……
  6. 【分布式】Zookeeper的服务器角色
  7. 停止做这7件事,你的工作效率至少翻一倍!
  8. fgets()逐行读取文件内容
  9. 小米手机解锁、线刷、开启root权限详细教程
  10. java 生成拼音_JAVA生成拼音码
  11. 魅蓝note6救砖_魅蓝NOTE6救砖工具及线刷包
  12. Kali Linux信息收集工具全集
  13. paypal沙盒用户_如何使用PayPal实施用户登录
  14. python为什么会出现无响应怎么办,Python多处理中无响应进程的终止
  15. DataSource数据源
  16. 【python】字符串前加u,r,b,f的含义
  17. VS没有CUDA模块问题
  18. 关于捕捞所有宝物的最小消耗体力量的问题
  19. Unity3D-计算帧率FPS
  20. Python 获取本月的最后一天

热门文章

  1. 编写一个程序实现输入一个十进制整数,将其转化十六进制数输出。
  2. Deep Recurrent Q-Learning for Partially Observable MDPs(DRQN)
  3. python关闭文件的方法_python中xlsx文件怎么关闭
  4. ubuntu18安装和美化教程
  5. 00001__以色列巴勒斯坦的关系
  6. freeswitch系列二 kamailio 5.0安装及实现kamailio集成freeswitch
  7. 【动手学树莓派】案例实操:点亮你的第一个LED(重点)
  8. Mock技术的深度理解及WireMock框架基础使用
  9. @font-face引入自定义字体 兼容IE
  10. javascript中的取余运算符