kmeans基本c实现的python包装器

kmeans的Python项目详细描述


Kmeans

https://travis-ci.org/numberoverzero/kmeans.png?branch=master

python包装器为k-means算法的基本c实现。

在使用任何严格的 要求准确。没有溢出检测,底片也没有 支持。元组值不能超过255。

安装

pip install kmeans

用法

import kmeans
means = kmeans.kmeans(points, k)

points应该是(data, weight)形式的元组列表,其中 data是一个长度为3的列表。

例如,为一组像素查找四种平均颜色:

pixels = [
    [(15, 20, 25), 1],  # [(r,g,b), count]
    [(17, 31, 92), 5],
    # ... Lots more ...
]

centers = kmeans.kmeans(pixels, 4)

在这种情况下,传入的权重可以是像素出现的频率。 在一个图像中,或某个偏好把手段拉向一种颜色。

限制

所有值都必须是non-negativeintegers,并具有以下内容 限制:

r, g, b        [0, 255]        (uint8_t)
count          [0, 4294967295] (uint32_t)
maximum points 4294967296      (uint32_t)
maximum means  256             (uint8_t)
max iterations 65536           (uint16_t)
max tolerance  65536           (uint16_t)

灵感

http://charlesleifer.com/blog/using-python-to-generate-awesome-linux-desktop-themes/

我想将这个实现应用于比200x200大得多的图像。 在一台漂亮的电脑上运行一个4kx3k的图像快60秒了,所以我 决定重写c中的kmeans实现。

贡献者

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
泛型Java将参数约束到公共超类   java Spring引导:在构造函数中加载属性文件并用作autowire注释   java中的优先级队列顺序错误。util。优先级队列和特定比较器   带有Java Sprint引导REST的Google应用程序引擎标准在GCLOUD服务器中不起作用   安卓从Java代码中检索变量并将其作为参数分配给TestNG   用于读取列表值的Java JSON对象   java Hibernate映射:实体映射中的重复列   多线程。start()不从Java中的父线程分派   java Android facebook webdialog网络错误(netstack:lib_mgr错误)   http使用Java阻止网站   java DynamicAsper:访问连接报表中动态列的值   java如何分离文件中的每个单词,并在表中显示每个单词和每个单词的编号?   如何打包和部署EclipseJava应用程序?   java使用Mule Anypoint,我想实现没有flowref的功能   java Kafka consumer ClassNotFoundException   java错误捕获帮助;消息不断重复   javaspring,Thymeleaf和CSS如何给错误着色   javascript如何在java中实现反向ajax   如何通过UDP连接从java数据包中读取序列号?