基于 K-means 聚类算法的图像区域分割系统主要由两部分组成,分别是登录界面和主界面。用户登录模块负责用户的登录功能,用户输入账号和密码正确后,进入主界面,失败则跳出弹窗,提示用户登录失败。这是用户运行程序的第一个界面,下一个界面是主界面。主界面主要是三个模块,分别是左方控制模块,右方显示模块,下方显示和功能模块。左方控制模块有打开图像和自动运行运行两个按钮,下方可以自定义聚类个数,并能够再最后运行在下方axes7中输出。右方显示模块,可以在打开图像后显示原图,在点击运行后显示聚类个数分别为2,3,4,5,6的聚类图像。下方在点击打开图片后能够输出图片路径。右下方是保存结果和退出系统功能,保存结果能够保存程序运行的结果,退出系统会弹出弹窗询问是否退出,点击确认则退出系统。


系统模块图

自动运行模块

%计算样本空间和聚类中心C的距离
%X:样本空间, nXp数组
%C:聚类中心, kXp数组
%method:距离公式
%varargin:其他参数
%D:每个点到聚类中心的欧式距离,
function D=sampledist(X,C,method,varargin)
[n,p]=size(X);
K=size(C,1);
%初始化距离矩阵
D=zeros(n,K);
switch lower(method(1))%循环计算到聚类中心距离case 'e'for i=1:KD(:,i)=(X(:,1)-C(i,1)).^2;for j=2:pD(:,i)=D(:,i)+(X(:,j) - C(i,j)).^2;endendcase 'c'for i=1:KD(:,i)=abs(X(:,1) - C(i,1));for j=2:pD(:,i)=D(:,i) + abs(X(:,j) - C(i,j));endend
end

自定义运行聚类

%从img图像中提取特征向量,包括颜色、距离和纹理等
%img:图像数组,可以是灰度或彩色的
%vec:像表占些征向量
function vec=exactvecotr(img)
[m,n,~]=size(img);
%初始化特征向量,一个像素对应一个特征
vec=zeros(m*n,3);
%将图像转换到特定的颜色空间
img=double(img);
%循环构建像素点特征向量
for j=1:n
for i=1:m%颜色特征color=img(i,j,:);dist=[];texture=[];%组成特征向量vec((j-1)*m+i,:)=[color(:);dist(:);texture(:)];end
end

https://github.com/MeetNiceMe/matlab

【matlab】机器学习与人工智能期末课设,基于 K-means 聚类算法的图像区域分割系统相关推荐

  1. 基于 K-means 聚类算法实现图像区域分割matlab代码

    1 简介 对图像进行颜色区域分割.将图像转换到CIE L*a*b颜色空间,用K均值聚类分析算法对描述颜色的a*和b*通道进行聚类分析;通过提取各个颜色区域独立成为单色的新图像,对图像进行分割处理.实验 ...

  2. 【图像分割】基于 K-means 聚类算法实现图像区域分割matlab代码

    1 简介 对图像进行颜色区域分割.将图像转换到CIE L*a*b颜色空间,用K均值聚类分析算法对描述颜色的a*和b*通道进行聚类分析;通过提取各个颜色区域独立成为单色的新图像,对图像进行分割处理.实验 ...

  3. python图像分割_基于K均值聚类算法的Python图像分割

    1个K均值算法 实际上,K-means算法是一种非常简单的算法,与算法思想或特定实现无关. 通过以一定方式测量样本之间的相似度,并迭代更新聚类中心,它属于无监督分类. 当聚类中心不再移动或移动差异小于 ...

  4. 哀嚎遍野!学妹跟学弟分手了,因为JavaEE期末课设SSM太难了!呜呼哀哉!

    期末课设题目亮像,朝野震惊!学霸直呼刺激,学渣大喊:救救我!!! 江老师机灵,一把抓住了端午节的小尾巴,还送来了一个端午节安康大礼包,人送绰号-江湖十八铜人,就是下面的十八个题目! 有的同学还在看我的 ...

  5. 双非普通一本大一学生学期末课设——运动会比赛计分系统

    双非普通一本大一学生学期末课设--运动会比赛计分系统 并没有做文件系统-只能将就的看一下,也没有结构体 做的很粗糙,很烂,就是发出来纪念一下. 感觉有点像堆出来的一坨屎,但是好歹是自己儿子,为我的代码 ...

  6. web音乐系统 javaweb音乐网站 低仿网易云音乐网站项目 期末课设 课设项目

    在一筹莫展的搞期末课设时,看到了这个up主的项目,简直是神仙下凡!!! 视频链接:https://www.bilibili.com/video/BV1i4411K7g4/?spm_id_from=33 ...

  7. 操作系统课设之虚拟内存页面置换算法的模拟与实现

    前言 课程设计开始了,实验很有意思,写博客总结学到的知识 白嫖容易,创作不易,学到东西才是真 本文原创,创作不易,转载请注明!!! 本文链接 个人博客:https://ronglin.fun/arch ...

  8. 机器学习的第三课,实现了一下LWR算法

    看了机器学习的第三课,实现了一下LWR算法. [cpp] view plaincopy #include<iostream> using namespace std; const int  ...

  9. 机器学习-无监督学习-聚类:聚类方法(二)--- 基于密度的聚类算法【DBSCAN文本聚类算法,密度最大值文本聚类算法】

    密度聚类方法的指导思想是,只要样本点的密度大于某阀值,则将该样本添加到最近的簇中. 基于密度的聚类算法假设聚类结构能够通过样本分布的紧密程度确定,以数据集在空间分布上的稠密程度为依据进行聚类,即只要一 ...

最新文章

  1. ckc交易什么意思_限价委托是什么意思?有限制的委托交易
  2. WIN7的CMD界面下输入ipconfig后提示不是内部或外外部命令,也不是可运行的程序或批处理文件...
  3. debian6之eclipse和jdk安装
  4. C# MD5 32位加密 UTF-8编码
  5. 【参与开源】J2EE开源项目JEECG快速开发平台,欢迎广大技术爱好者参与
  6. 下载完apk安装包后实现自动安装;
  7. auto_ptr 源码 极其解析
  8. 神经网络自我进化模型,神经网络自我进化方向
  9. 如何按页进行PDF文档拆分
  10. 服务器宕机监控、检测、报警程序(139绑定手机短信报警)monitor_down.sh
  11. 关于magic-api的使用入门
  12. Matlab 生成方波信号
  13. QT+OSG/osgEarth编译之四十三:jasper+Qt编译(一套代码、一套框架,跨平台编译,版本:basisjasper-2.0.12)
  14. Java获取package下所有的class对象(普通文件包和Jar文件包)
  15. 数智化时代,驱动企业转型升级的“三驾马车”是什么?
  16. Emacs - 维基百科,自由的百科全书
  17. Backtrader(十四)- Order订单 - 订单有效期与涨停跌停
  18. LTspice基础教程-031.容值可变电容
  19. 期货市场价格发现功能的含义和特点是什么(如何理解期货市场具有价格发现经济功能)
  20. 基于 SpringBoot + Vue 的物流管理系统(附源码)

热门文章

  1. 将任意文件转换为Pcap网络数据包传输
  2. [USACO20JAN]Loan Repayment S
  3. 搜狗浏览器安装自定义JS脚本的方法~
  4. WARNING: One of the plugins you are using supports Java 8 language features. To try the support buil
  5. java根据经纬度获取地址(百度地图)
  6. 地址转为经纬度通过DBSCAN进行关联识别
  7. 2023江苏大学计算机考研信息汇总
  8. 计算机强制关机后无法正常启动,​window7强制关机之后无法正常启动修复方法...
  9. 每逢佳节胖三斤? 春节过后天猫上家用健身机3天被疯抢10万台
  10. 软件测试常见英文单词汇总