将图像读入工作区。减小图像大小以使示例运行得更快。

RGB = imread('kobi.png');

RGB = imresize(RGB,0.5);

imshow(RGB)

使用 k 均值聚类将图像分割成两个区域。

L = imsegkmeans(RGB,2);

B = labeloverlay(RGB,L);

imshow(B)

title('Labeled Image')

一些像素的标签有误。该示例的后续部分将说明如何通过补充关于每个像素的信息来改进 k 均值分割。

使用每个像素邻域中的纹理信息来补充图像。要获取纹理信息,请使用一组 Gabor 滤波器对图像的灰度版本进行滤波。

创建一组 Gabor 滤波器(包含 24 个),覆盖 6 个波长和 4 个方向。

wavelength = 2.^(0:5) * 3;

orientation = 0:45:135;

g = gabor(wavelength,orientation);

将图像转换为灰度。

I = rgb2gray(im2single(RGB));

使用 Gabor 滤波器对灰度图像进行滤波。以蒙太奇方式显示 24 个滤波后的图像。

gabormag = imgaborfilt(I,g);

montage(gabormag,'Size',[4 6])

对每个滤波后的图像进行平滑处理以消除局部变化。以蒙太奇方式显示平滑处理后的图像。

for i = 1:length(g)

sigma = 0.5*g(i).Wavelength;

gabormag(:,:,i) = imgaussfilt(gabormag(:,:,i),3*sigma);

end

montage(gabormag,'Size',[4 6])

用空间位置信息补充关于每个像素的信息。此额外信息让 k 均值聚类算法能够在分组时优先考虑空间上相近的像素。

获取输入图像中所有像素的 x 和 y 坐标。

nrows = size(RGB,1);

ncols = size(RGB,2);

[X,Y] = meshgrid(1:ncols,1:nrows);

串联有关每个像素的强度信息、邻域纹理信息和空间信息。

对于此示例,特征集使用强度图像 I,而不是原始彩色图像 RGB。特征集省略了颜色信息,因为狗毛的黄色与图块的黄色相似。颜色通道无法提供足够多有关狗和背景的差异信息来进行清晰的分割。

featureSet = cat(3,I,gabormag,X,Y);

使用 k 均值聚类基于补充特征集将图像分割成两个区域。

L2 = imsegkmeans(featureSet,2,'NormalizeInput',true);

C = labeloverlay(RGB,L2);

imshow(C)

title('Labeled Image with Additional Pixel Information')

kmeans聚类图matlab,基于 K 均值聚类的图像分割相关推荐

  1. 基于K均值聚类的葡萄酒品种判别

    特别注意:主要思路.程序和分析过程来源于:https://www.kaggle.com/xvivancos/tutorial-clustering-wines-with-k-means.本文在此基础上 ...

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

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

  3. Spark数据挖掘-基于 K 均值聚类的网络流量异常检测(1): 数据探索、模型初探

    Spark数据挖掘-基于 K 均值聚类的网络流量异常检测(1): 数据探索.模型初探 1 前言 分类和回归是强大易学的机器学习技术.需要注意的是:为了对新的样本预测未知的值, 必须从大量已知目标值的样 ...

  4. matlab版K均值聚类

    先看一篇关于K均值聚类的论文. 链接http://www.cnblogs.com/CBDoctor/archive/2011/10/24/2222358.html K均值聚类作用于灰度图上相当于根据灰 ...

  5. 聚类算法中的K均值聚类算法(K-Means clustering)

    =======================================================================               Machine Learni ...

  6. 聚类和EM算法——K均值聚类

    20211116 数据分析 | 聚类分析--kmean kmeans最优k值的确定方法-手肘法和轮廓系数法 - 简书 python大战机器学习--聚类和EM算法 注:本文中涉及到的公式一律省略(公式不 ...

  7. 基于 K 均值聚类的径向基RBF神经网络优化(Matlab代码实现)

  8. 聚类分析 | MATLAB实现k-Means(k均值聚类)分析

    目录 聚类分析 | MATLAB实现k-Means(k均值聚类)分析 k-均值聚类简介 相关描述 程序设计 学习小结 参考资料 致谢 聚类分析 | MATLAB实现k-Means(k均值聚类)分析 k ...

  9. K均值聚类关于初始聚类中心的探讨(matlab程序)

    对应之前发过的:K均值聚类关于初始聚类中心的探讨,补发MATLAB的程序代码. matlab程序: 1. %利用传统K均值随机选取点聚类 clear all; close all; clc; %生成五 ...

最新文章

  1. self attentin Q K V心得
  2. stm32 TIM2 重映射
  3. Shell 显示带颜色字体
  4. 推动数据中心绿色转型(经济透视)
  5. Spring Boot、Spring Cloud、Spring Cloud Alibaba版本关系查询
  6. 代码不规范?985,211也不要!
  7. 递增三元组(蓝桥杯)
  8. 【WCF】WCF服务库和WCF服务应用程序的区别
  9. Javascript 操作select标记中options的方法
  10. 安装hdfview 和 hdf5 环境
  11. 计算机二级机试题型,计算机二级机试题库
  12. Radius认证协议(一)
  13. Docker - Docker Image及Image命令详解
  14. 2019HPU-ICPC-Training-1
  15. 内存诊断工程搭建及demo测试
  16. Apache Hudi的编译及安装
  17. 精益看板方法从理论到实战 (5)—— 控制在制品数量(上)
  18. Dogfight :从无人机视频中检测无人机
  19. MTK Android Driver :Camera
  20. 目标检测—RCNN系列

热门文章

  1. 零基础学习python笔记
  2. 做人,要得就是问心无愧
  3. Linux学习:Linux的发展历史及特点
  4. ferret 爬取动态网页
  5. 14届中国(南京)国际软博会惊现中兴新支点国产操作系统
  6. C++ 产生随机数函数
  7. mysql blackhole_MYSQL中的BlackHole引擎
  8. 亿欧智库:2022中国边缘计算产业研究报告
  9. hive数据类型及转换
  10. linux如何安装桌面环境,为Linux主机安装图形化桌面环境