【问题标题】:Can anyone provide me with some clustering examples?谁能为我提供一些聚类示例?
【发布时间】:2012-09-30 06:11:03
【问题描述】:

我很难理解scipy.cluster.vq 的真正作用!!

在 Wikipedia 上它说 Clustering 可用于将数字图像划分为不同的区域以进​​行边界检测或对象识别。
在其他网站和书籍上,它说我们可以使用 clustering 方法对图像进行聚类以查找相似图像组。
由于我对图像处理感兴趣,我真的需要完全了解clustering 是什么。

所以
谁能给我展示一下使用scipy.cluster.vq 处理图片的简单例子吗??

【问题讨论】:

    标签: python scipy cluster-analysis


    【解决方案1】:

    scipy.cluster.vq 进行的聚类肯定属于后者(相似图像组)的种类。

    scipy.cluster.vq 中实现的唯一聚类算法是K-Means 算法,它通常将输入数据视为 n 维欧几里得空间中的点,并尝试划分该空间,以便可以通过以下方式总结新的传入数据“示例 x 最像质心 y”。质心可以被认为是输入数据的原型示例。矢量量化导致了简洁或压缩的表示,因为我们可以记住一个整数,而不是记住我们看到的每个新图像的所有 100 个像素,它指向新图像最相似的原型示例。

    如果您有许多小灰度图像:

    >>> import numpy as np
    >>> images = np.random.random_sample((100,10,10))
    

    所以,我们有 100 张 10x10 像素的图像。让我们假设它们都已经具有相似的亮度和对比度。 scipy kmeans 实现需要平面向量:

    >>> images = images.reshape((100,100))
    >>> images.shape
    (100,100)
    

    现在,让我们训练 K-Means 算法,以便任何新的输入图像都可以分配到 10 个集群之一:

    >>> from scipy.cluster.vq import kmeans, vq
    >>> codebook,distortion = kmeans(images,10)
    

    最后,假设我们有五个新图像要分配给十个集群之一:

    >>> newimages = np.random.random_samples((5,10,10))
    >>> clusters = vq(newimages.reshape((5,100)),codebook)
    

    clusters 将包含五个示例中每个示例的最佳匹配质心的整数索引。

    这是一个玩具示例,除非您正在处理的图像中感兴趣的对象都居中,否则不会产生很好的结果。由于感兴趣的对象可能出现在较大图像中的任何位置,因此通常会为较小的图像“块”学习质心,然后将它们与较大的图像进行卷积(在许多不同位置进行比较)以提高平移不变性。

    【讨论】:

    • images = images.ravel() 之后,images.shape 应该是 (10000,)。
    • 很高兴我投票赞成。是的,我即将获得它,但你能用更简单的科学英语解释什么是 Kmeanscentroids 。如果您可以发布任何图片,以便我可以想象发生了什么,这将不胜感激。谢谢
    • 谢谢@WarrenWeckesser,你是对的。我已经编辑了代码,以便使用reshape 而不是ravel
    • @SomeoneSomeoneelse,在这里查看图片:scikit-learn.org/stable/auto_examples/cluster/…。这是二维空间中点的集群可视化。在我的示例中,我们在 100 维空间中进行聚类。
    • 您可能需要修改这部分 clusters = vq(newimages.**reshape((100,100))**,codebook)。无论如何我正在尝试完全理解您的代码。谢谢
    【解决方案2】:

    第二个是聚类:将有些相似的对象分组(可能是图像)。聚类不是一种纯粹的成像技术。

    处理单个图像时,例如可以将其应用于颜色。这是减少图像中颜色数量的一种非常好的方法。如果您按颜色和像素坐标进行聚类,您还可以将其用于图像分割,因为它将具有相似颜色的像素分组彼此接近。但这是集群的应用领域,而不是纯粹的集群。

    【讨论】:

    • 那么你如何将各种图像分组?
    猜你喜欢
    • 1970-01-01
    • 2010-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多