K-means算法对图像处理

K-means算是图像自动分类基础的算法之一,原理参考各类书籍

代码实现步骤:
指定分成几类,设置每类的初始均值,对图像进行重新分类,分类标准就是与每个聚类均值做差值(绝对值),差值最小的聚类则归并为该聚类。全部重新归类后重新计算新聚类的均值与之前聚类均值比较,小于指定阈值,停止迭代。

程序对于单波段多波段均匹配,分波段进行聚类,直至每个波段数据聚类均达到稳定。

function data1=kmean(data ,k,T)%k指要分种类的个数,T为目标聚类重分类后均值与之前均值差的阈值,及达到稳定的阈值
[m,n,bands]=size(data);%图像数据行列
data1=zeros(m,n,bands);%矩阵存储最后的结果
data=double(data);
Min=min(min(min(data)));
Max=max(max(max(data)));
%根据图像波段设置变量,申请相应的内存空间方便计算
dis=zeros(bands,k);%数据相对聚类均值的差值
Mean=zeros(bands,k);%聚类的均值
TMean=zeros(bands,k);%聚类均值的临时变量
for i=1:kfor band=1:bandsMean(band,i)=i/k*(Max-Min)+Min;end
end
flag=0;
while(flag~=k*bands)%设置一个标志,当满足条件则退出循环for i=1:mfor j=1:nfor s=1:kfor band=1:bandsdis(s,band)=abs(data(i,j,band)-Mean(band,s));endend[~,index]=min(dis);for band=1:bandsdata1(i,j,band)=index(1,band);endendendflag=0;for band=1:bandsfor i=1:k%循环判断所得聚类均值是否满足要求tdata=data(:,:,band);tdata1=data1(:,:,band);TMean(band,i)=mean(tdata(find(tdata1==i)));if abs(TMean(band,i)-Mean(band,i))<=Tflag=flag+1;endendendMean=TMean;
end
end

运行截图参考:
多波段图像(RGB图像):

分类结果:(阈值为5)

分类结果(阈值为0);

单波段(灰度化后影像):

分类结果(阈值为5):

分类结果(阈值为0):

K-means算法对图像处理(matlab)相关推荐

  1. kmeans改进 matlab,基于距离函数的改进k―means 算法

    摘要:聚类算法在自然科学和和社会科学中都有很普遍的应用,而K-means算法是聚类算法中经典的划分方法之一.但如果数据集内相邻的簇之间离散度相差较大,或者是属性分布区间相差较大,则算法的聚类效果十分有 ...

  2. k means算法C语言伪代码,K均值算法(K-Means)

    1. K-Means算法步骤 算法步骤 收敛性定义,畸变函数(distortion function): 伪代码: 1) 创建k个点作为K个簇的起始质心(经常随机选择) 2) 当任意一个点的蔟分配结果 ...

  3. k均值聚类算法(K Means)及其实战案例

    算法说明 K均值聚类算法其实就是根据距离来看属性,近朱者赤近墨者黑.其中K表示要聚类的数量,就是说样本要被划分成几个类别.而均值则是因为需要求得每个类别的中心点,比如一维样本的中心点一般就是求这些样本 ...

  4. K-均值聚类算法(含MATLAB程序)

    一.算法简介 K-means聚类算法由J.B.MacQueen在1967年提出,是最为经典也是使用最为广泛的一种基于划分的聚类算法,属于基于距离的聚类算法.这类算法通常是由距离比较相近的对象组成簇,把 ...

  5. K means 图片压缩

    k-means的基本原理较为清晰,这里不多赘述,本次博客主要通过基础的k means算法进行图像的压缩处理. 原理分析 在彩色图像中,每个像素的大小为3字节(RGB),可以表示的颜色总数为256 * ...

  6. k均值算法原理详细讲解以及matlab代码实现

    有研究生物电信号处理和机器学习的欢迎加我qq429500506共同交流学习进步. 最近更新文章的频率太低了,主要原因是不想为了发文章而发文章,想潜心研究,写好文章,顺便想说一句开源万岁,最近一个月虽然 ...

  7. 【数字图像处理matlab】(HSI变换融合算法)

    [数字图像处理matlab](HSI变换融合算法) 输入一张高分辨率的全色影像HR,一张低分辨率的多光谱影像MS,采用HSI变换融合算法实现影像融合,其中RGB与HSI影像的相互转换调用自定义函数RG ...

  8. 我的K均值算法的matlab实现

    这是我的第一篇博客: K-Means算法过程,略: 这是一次课程的任务2333,是利用所学K-means聚类分析方法,对iris数据集进行聚类分析,并利用已知的样本类别标 签进行聚类分析评价: 我的K ...

  9. 基于改进人工蜂群算法的K均值聚类算法(附MATLAB版源代码)

    其实一直以来也没有准备在园子里发这样的文章,相对来说,算法改进放在园子里还是会稍稍显得格格不入.但是最近邮箱收到的几封邮件让我觉得有必要通过我的博客把过去做过的东西分享出去更给更多需要的人.从论文刊登 ...

  10. k-Means——经典聚类算法实验(Matlab实现)

    聚类算法-k-Means实验 k-平均(k-Means),也被称为k-均值,是一种得到最广泛使用的聚类算法[1]. k-Means算法以k为参数,把n个对象分为k个簇,使得簇内具有较高的相似度. 实验 ...

最新文章

  1. 一个新手上课的路程!!!
  2. 使用可变对象作为Java Map的key,会带来潜在风险的一个例子
  3. python 将一个字符list的列表扁平化成了一个list
  4. 轴固定位置_全面总结:轴零件固定方式及特点
  5. 测试工具之RobotFramework界面基本功能使用
  6. a标签去掉下划线_html常用标签、包含关系、常用术语,以及网页设计中的字体分类
  7. php 怎么验证邮箱验证码,PHP 验证邮箱是否有效 - 沃森博客
  8. Sql2008中添加程序集(转)
  9. 【模版】求单个/多个欧拉函数值
  10. apple pencil二代值不值得买?iPad电容笔测评
  11. OA是什么?OA系统,OA,OA解决方案有哪些,OA有什么功能,OA有什么作用
  12. rds基于什么开发_什么是云数据库RDS
  13. Tiny Heroes:道高一尺,魔高一丈
  14. python实现自动化查谁没交作业
  15. 防火墙的基础知识——第一天
  16. 企业上云的动力是什么
  17. CSS-Grid(网格)布局
  18. PyTorch之对类别张量进行one-hot编码
  19. testpmd csum engine 测试 checksum hw offload
  20. IDEA翻译插件 : Translation 安装及使用 解决Google翻译不能使用【保姆级教学】

热门文章

  1. 【笔记】如何把GBK的文本格式转换为UTF-8格式
  2. 4600显卡linux驱动,下载:NVIDIA显卡Linux驱动304.64版
  3. ARC098E Range Minimum Queries
  4. [2018.03.29 T2] 公交旅行
  5. BZOJ3566[SHOI2014] 概率充电器
  6. nginx的安装及配置文件详解
  7. java 动态属性_Java 类动态添加属性字段的操作
  8. Eclipse打开报错解决方案
  9. jquery中ajax的post方法,jQuery中Ajax的get、post等方法详解
  10. java 文件夹不存在则创建_java判断文件不存在就创建的方法