ML之Hierarchical clustering:利用层次聚类算法来把100张图片自动分成红绿蓝三种色调

目录

输出结果

实现代码


输出结果

实现代码

#!/usr/bin/python
# coding:utf-8
from PIL import Image, ImageDraw
from HierarchicalClustering import hcluster
from HierarchicalClustering import getheight
from HierarchicalClustering import getdepth
import numpy as np
import osdef drawdendrogram(clust, imlist, jpeg= 'clusters.jpg'): h = getheight(clust)*20      w = 1200depth = getdepth(clust)     scaling = float(w - 150)/depth img = Image.new('RGB', (w, h), (255, 255, 255)) draw = ImageDraw.Draw(img)                       draw.line((0, h/2, 10, h/2), fill=(255, 0, 0))   drawnode(draw, clust, 10, int(h/2), scaling, imlist, img)  img.save(jpeg)    def drawnode(draw,clust,x,y,scaling,imlist,img):     if clust.id < 0: h1 = getheight(clust.left)*20h2 = getheight(clust.right)*20top = y - (h1 + h2)/2bottom = y + (h1 + h2)/2ll = clust.distance * scalingdraw.line((x, top + h1/2, x, bottom - h2/2), fill=(255, 0, 0))draw.line((x, top + h1/2, x + ll, top + h1/2), fill=(255, 0, 0))draw.line((x, bottom - h2/2, x + ll, bottom - h2/2), fill=(255, 0, 0))drawnode(draw, clust.left, x + ll, top + h1/2, scaling, imlist, img)drawnode(draw, clust.right, x + ll, bottom - h2/2, scaling, imlist, img)else: nodeim = Image.open(imlist[clust.id])nodeim.thumbnail((20, 20))   ns = nodeim.sizeprint (x,y - ns[1]//2)print (x + ns[0])print (img.paste(nodeim, (int(x), int(y - ns[1]//2), int(x + ns[0]),int(y + ns[1] - ns[1]//2))))imlist=[]
folderpath = r'F:\File_Python\Crawler'
for filename in os.listdir(folderpath): if os.path.splitext(filename)[1]=='.jpg':imlist.append(os.path.join(folderpath,filename))
n=len(imlist)
print(n)features =np.zeros((n,3))
for i in range(n):         im=np.array(Image.open(imlist[i])) R = np.mean(im[:,:,0].flatten())    G = np.mean(im[:,:,1].flatten())B = np.mean(im[:,:,2].flatten())features[i]=np.array([R,G,B])tree = hcluster(features)
drawdendrogram(tree, imlist, jpeg=r'C:\Users\99386\Desktop\result.jpg')  #

相关文章
ML之H-clustering:自定义HierarchicalClustering层次聚类算法
ML之H-clustering:利用层次聚类算法来把100张图片自动分成红绿蓝三种色调

ML之Hierarchical clustering:利用层次聚类算法来把100张图片自动分成红绿蓝三种色调相关推荐

  1. Crawler/ML:爬虫技术(基于urllib.request库从网页获取图片)+HierarchicalClustering层次聚类算法,实现自动从网页获取图片然后根据图片色调自动分类

    Crawler/ML:爬虫技术(基于urllib.request库从网页获取图片)+HierarchicalClustering层次聚类算法,实现自动从网页获取图片然后根据图片色调自动分类 目录 一. ...

  2. 利用层次聚类算法进行基于基站定位数据的商圈分析

    1. 背景与挖掘目标 1.1 背景 • 随着个人手机和网络的普及,手机已经基本成为所有人必须持有的工具. • 根据手机信号再地理空间的覆盖情况结合时间序列的手机定位数据可以完整的还原人群的现实活动轨迹 ...

  3. 模式识别:C-means(K-means)聚类算法与分级聚类(层次聚类)算法

    C均值聚类算法与分级聚类算法的聚类分析 一.实验目的 理解聚类的整体思想,了解聚类的一般方法: 掌握 C-means与分级聚类算法算法思想及原理,并能够熟练运用这些算法进行聚类分析: 能够分析二者的优 ...

  4. 层次聚类算法的原理及实现Hierarchical Clustering

    层次聚类算法的原理及实现Hierarchical Clustering 层次聚类(Hierarchical Clustering)是聚类算法的一种,通过计算不同类别数据点间的相似度来创建一棵有层次的嵌 ...

  5. 机器学习-Hierarchical clustering 层次聚类算法

    学习彭亮<深度学习基础介绍:机器学习>课程 假设有N个待聚类的样本,对于层次聚类来说,步骤: (初始化)把每个样本归为一类,计算每两个类之间的距离,也就是样本与样本之间的相似度: 寻找各个 ...

  6. ML之Clustering之普聚类算法:普聚类算法的相关论文、主要思路、关键步骤、代码实现等相关配图之详细攻略

    ML之Clustering之普聚类算法:普聚类算法的相关论文.主要思路.关键步骤.代码实现等相关配图之详细攻略 目录 普聚类算法的相关论文 普聚类算法的主要思路 普聚类算法的关键步骤 普聚类算法的代码 ...

  7. ML之HierarchicalClustering:自定义HierarchicalClustering层次聚类算法

    ML之HierarchicalClustering:自定义HierarchicalClustering层次聚类算法 目录 输出结果 实现代码 输出结果 更新-- 实现代码 # -*- encodin ...

  8. 层次聚类(hierarchical clustering)和聚类模型评估(calinski-harabaz index)

    层次聚类(Hierarcical Clustering) 层次聚类是聚类算法中的一种,它通过计算不同类别数据点之间的相似度,来创建一颗有层次的嵌套聚类树,层次聚类的策略有两种: 1.Agglomera ...

  9. 『ML』利用K-Means聚类算法对未标注数据分组——《机器学习实战》学习笔记(Ch10)

    本节用Python实现K-Means算法,对未标注的数据进行聚类. 在做完聚类后,如何对于聚类结果进行评估?请看 用Python实现聚类效果的评估(轮廓系数.互信息) 导航 K-Means简介 代码实 ...

最新文章

  1. 笔画输入法电脑版_太有才!浙江路政员发明汉字码输入法
  2. 商业逻辑12讲之战略管理的逻辑
  3. 10以内的分解与组成怎么教_【一年级数学】(上)10以内的分与合技巧及练习题...
  4. python编程首选_为什么说学编程首选是python
  5. 理发店收银系统php,【毕业论文】基于php+mysql美发店收银系统设计与实现.doc
  6. jmeter中CSV Data Set Config的使用
  7. 变异数分析_人工智能系统中分析变异的祸害
  8. Thingworx入门学习
  9. 局域网共享工具_win10一键局域网共享工具使用教程
  10. android实现弹框动画,android对话框弹出方式动画
  11. jzxx1107【入门】字符图形6-星号倒三角
  12. python里面的return是什么意思_python中return是什么意思?
  13. 怎么用python输出百分比_Python 输出百分比
  14. java实现猜你喜欢_猜你喜欢实现原理:电商“猜你喜欢“是怎么实现的?
  15. 为什么顶级程序员都有超强逆商?顶级程序员马化腾在艰难的时候,是如何度过的?
  16. 使用Mailgun WordPress插件增加订户
  17. 【IoT】卫朋:6000+ 字解读 | 2022年产品人必备的7个产品管理工具(1.0版)
  18. rasterio实用教程(4)——坐标系转换
  19. 十年技术进阶路:让我明白了三件要事。关于如何做好技术 Team Leader?如何提升管理业务技术水平?(10000字长文)...
  20. 如何选择适合自己业务的服务器配置

热门文章

  1. Linux 内核引导选项简介 *********很多常用的受益匪浅
  2. 一文了解 Apache Flink 核心技术
  3. JSON数据从MongoDB迁移到MaxCompute最佳实践
  4. 来写一个 Alfred 的 Workflows
  5. 太阳能发电产业有望大发展
  6. web服务高级使用 Samba共享
  7. 3.10以上charles版本抓取Https数据包
  8. 从一道面试题谈起,大厂到底看重程序员的什么能力?
  9. 理论+实践轻松掌握nohup java -jar xxxx.jar /dev/null 21 意义
  10. 互联网巨头们的「中台战事」