把图像中所有的像素点进行RGB聚类分析,然后输出看结果

 img = imread('qq.png');

 %取出R矩阵,并将这个R矩阵拉成一列
imgR = img(:,:,1);
imgR = imgR(:); %取出G矩阵,并将这个G矩阵拉成一列
imgG = img(:,:,2);
imgG = imgG(:); %取出B矩阵,并将这个B矩阵拉成一列
imgB = img(:,:,3);
imgB = imgB(:); %把R G B拼起来 每一行代表每个点的RGB值 总计有 W*H行
imgRGB = [imgR imgG imgB]; %对imgRGB进行聚类算法,默认应该是欧拉距离
[classIndex, classRGB] = kmeans(double(imgRGB), 3);
classRGB = int32(classRGB); %把3个中心点的RGB值作为输出值,使图像只有那么3种颜色
for i=1:size(classIndex,1) if(classIndex(i) == 1)
imgRGB(i,:) = classRGB(1,:);
end if(classIndex(i) == 2)
imgRGB(i,:) = classRGB(2,:);
end if(classIndex(i) == 3)
imgRGB(i,:) = classRGB(3,:);
end end %最后把数据转回图像的矩阵,显示出来
[height,width] = size(img);
width = width/3;
for j=1:width
for i=1:height
img(i,j,1) = imgRGB(i+(j-1)*height,1); %把R提取出来赋回去
img(i,j,2) = imgRGB(i+(j-1)*height,2); %把G提取出来赋回去
img(i,j,3) = imgRGB(i+(j-1)*height,3); %把B提取出来赋回去
end
end imshow(img);

第二张是上面代码的结果

第三张用3个颜色代表了3个类

第四张,设置K为4,也即会分成4类,搞了4种颜色

kmeans算法的matlab实践的更多相关文章

  1. K-means算法的matlab程序

    K-means算法的matlab程序 在“K-means算法的matlab程序(初步)”这篇文章中已经用matlab程序对iris数据库进行简单的实现,下面的程序最终的目的是求准确度. 作者:凯鲁嘎吉 ...

  2. K-means算法的matlab程序(初步)

    K-means算法的matlab程序 在https://www.cnblogs.com/kailugaji/p/9648369.html 文章中已经介绍了K-means算法,现在用matlab程序实现 ...

  3. k-means算法及matlab实现

    K-means算法很简单,它属于无监督学习算法中的聚类算法中的一种方法吧,利用欧式距离进行聚合啦. 解决的问题如图所示哈:有一堆没有标签的训练样本,并且它们可以潜在地分为K类,我们怎么把它们划分呢?  ...

  4. kmeans算法原理以及实践操作(多种k值确定以及如何选取初始点方法)

    kmeans一般在数据分析前期使用,选取适当的k,将数据聚类后,然后研究不同聚类下数据的特点. 算法原理: (1) 随机选取k个中心点: (2) 在第j次迭代中,对于每个样本点,选取最近的中心点,归为 ...

  5. 【K-means算法】matlab代码实例学习

    1. MATLAB函数Kmeans 使用方法:Idx=Kmeans(X,K)[Idx,C]=Kmeans(X,K) [Idx,C,sumD]=Kmeans(X,K) [Idx,C,sumD,D]=Km ...

  6. Kmeans算法的应用实例(Matlab版本)

    K-means是一种经典的聚类算法,是十大经典数据挖掘算法之一.K-means算法的基本思想是:以空间中k个点为中心进行聚类,对最靠近他们的对象归类.通过迭代的方法,逐次更新各聚类中心的值,直至得到最 ...

  7. 关于k-means聚类算法的matlab实现

    在数据挖掘中聚类和分类的原理被广泛的应用. 聚类即无监督的学习. 分类即有监督的学习. 通俗一点的讲就是:聚类之前是未知样本的分类.而是根据样本本身的相似性进行划分为相似的类簇.而分类 是已知样本分类 ...

  8. 机器学习算法与Python实践之(五)k均值聚类(k-means)

    机器学习算法与Python实践这个系列主要是参考<机器学习实战>这本书.因为自己想学习Python,然后也想对一些机器学习算法加深下了解,所以就想通过Python来实现几个比较常用的机器学 ...

  9. k-means算法MATLAB和opencv代码

    上一篇博客写了k-means聚类算法和改进的k-means算法.这篇博客就贴出相应的MATLAB和C++代码. 下面是MATLAB代码,实现用k-means进行切割: %%%%%%%%%%%%%%%% ...

随机推荐

  1. 在sklearn上读取人脸数据集保存图片到本地

    程序如下: # -*- coding: utf-8 -*- """ Created on Sat Oct 31 17:36:56 2015 ""&qu ...

  2. Makefile笔记

    一个简单的Makefile描述规则组成: TARGET...:PREREQUISITES... COMMANDS... ... target:规则的目标.通常是程序中间或者最后要生成的文件名,也可以是 ...

  3. SQL查询(笔记2——实体查询)

    SQL查询(笔记2——实体查询) 二.实体查询 如果查询返回了某个数据表的全部数据列,且该数据表有对应的持久化类映射,我们就把查询结果转换成实体查询.将查询结果转换成实体,可以使用SQLQuery提供 ...

  4. alias 命令

    功能说明:设置指令的别名. 语 法:alias[别名]=[指令名称] 参 数 :若不加任何参数,则列出目前所有的别名设置. 举    例 :ermao@lost-desktop:~$ alias    ...

  5. 持久化框架Hibernate 开发实例(一)

    1 Hibernate简介 Hibernate框架是一个非常流行的持久化框架,其中在web开发中占据了非常重要的地位, Hibernate作为Web应用的底层,实现了对数据库操作的封装.HIberna ...

  6. 转TransactionProxyFactoryBean代理事务

    <?xml version="1.0" encoding="GBK"?> <!-- 指定Spring配置文件的DTD信息 --> < ...

  7. linux自动启动shell和init概述(fedora use systemmd now!!!)

    linux运行级别  linux启动之后会在一个级别运行,下面列出了这些运行级别: 0 系统停止 1 单用户系统,不需要登陆 2 多用户系统但不支持NFS,命令行模式登陆 3 完整多用户模式,命令行模 ...

  8. 对于接收到的GPS信息详解

    最近一直在做gps驱动方面的东西,对于底层接收到的gps信息不是很了解,查询了资料对这些信息做出总结: 由于在室内,所以信号不是很好,接收不到卫星信号,必须站到窗口或者空旷的地方,这是gps的debu ...

  9. ios越狱开发第一次尝试记录

    1.THEOS的makefile文件中的THEOS_DEVICE_IP要写在第一行 2.如果make package install报错 dpkg status database is locked ...

  10. 01-语言入门-01-A+B Problem

    题目地址: http://acm.nyist.net/JudgeOnline/problem.php?pid=1    描述 此题为练手用题,请大家计算一下a+b的值   输入 输入两个数,a,b 输 ...