資源簡介
Kmean matlab 中心聚類 基于lab圖像空間
代碼片段和文件信息
%filename和k為參數,對應文件名和聚類類別數目
clc;
clear;
filename=‘flower.bmp‘;
fr=imread(filename);
cform=makecform(‘srgb2lab‘);
fl=applycform(frcform);?
%以上讀取并將彩色圖像由RGB空間轉換到Lab空間
[MNK]=size(fl);
I=reshape(flM*NK);???????%轉換圖像為一系列矢量
fab=I(:2:3);??????????????%提取ab分量信息
%imshow(fr);
k=3;????????????????????????%指定預計聚類數目
n=M*N;
x=double(fab);??????????????%對圖像ab空間數據進行轉換
ind?=?ceil(n*rand(1k));????%隨機選取聚類中心
nc?=?x(ind:);??????????????%nc記錄初始聚類中心和重心
cid?=?zeros(n1);
oldcid?=?ones(n1);?????????%兩個矩陣記錄各點所屬類別
nr?=?zeros(1k);????????????%nr記錄類別的點的數目
maxiter?=?500;??????????????%最大迭代次數
iter?=?1;
%以下kmean聚類過程
while?~isequal(cidoldcid)?&?iter?????oldcid=cid;
????for?i?=?1:n????????
????????dist?=?sum((repmat(x(i:)k1)-nc).^22);?%歐式距離計算
????????[mind]?=?min(dist);?????????
- 上一篇:六自由度機器人matlab源程序
- 下一篇:圖像字符分割
評論
共有 條評論