tghk.net
当前位置:首页>>关于基于k-means的图像分割MATLAB程序的资料>>

基于k-means的图像分割MATLAB程序

close all; clear; I_rgb = imread('color-cam4-f0.bmp'); %读取文件数据 figure(1); subplot(1,2,1); imshow(I_rgb); %显示原图 title('原始图像'); %将彩色图像从RGB转化到lab彩色空间 C = makecform('srgb2lab'); %设置转换格式 I_lab = appl...

function [mu,mask]=kmeans(ima,k)%k为指定类别数 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % % kmeans image segmentation % % Input: % ima: grey color image灰度图像 % k: Number of classes指定的图像中类别数目 % ...

1 http://www.oschina.net/code/snippet_176897_10239 2 至于你说要10维,画不了。另外,数据维数略高,十维数据用kmeans聚类效果不会好的。

哥们和我做的题目一样呀。。

[IDX,C,sumd] = kmeans(X,k) 其中X是只含数字部分的矩阵。k是要聚集的类数。

%随机获取100个点 X =[randn(100,2)+ones(100,2);randn(100,2)+[ones(100,1),-ones(100,1)]]; opts =statset('Display','final'); %调用Kmeans函数 %X N*P的数据矩阵 %Idx N*1的向量,存储的是每个点的聚类标号 %Ctrs K*P的矩阵,存储的是K个聚类...

% 可能是聚类后的图像数据不匹配,用如下代码试试 iidx = uint8(iidx);level = graythresh(iidx);imageout = im2bw(iidx,level);imshow(imageout);

其实这个算法在matlab里已经集成了,你可以在matlab中输入 help kmeans查询一下

首先给出原始数据{x1,x2,...,xn},这些数据没有被标记的。 初始化k个随机数据u1,u2,...,uk。这些xn和uk都是向量。 根据下面两个公式迭代就能求出最终所有的u,这些u就是最终所有类的中心位置。 公式一: 意思就是求出所有数据和初始化的随机数据...

matlab 自带kmeans是k-均值聚类函数。例如: rng default; X = [randn(100,2)*0.75+ones(100,2); randn(100,2)*0.5-ones(100,2)]; opts = statset('Display','final'); [idx,C,sumd,D] = kmeans(X,2,'Distance','cityblock','Replicates',5,'Opt...

网站首页 | 网站地图
All rights reserved Powered by www.tghk.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com