gusucode.com > matlab程序语言实现的水准网平差程序,使用于测绘人员 > 一种基于极大值稳定区域的文本定位方法matlab源码程序/毕业设计/代码/k.m
clear all [filename,pathname]=uigetfile('*.*','choose a picture'); path = [pathname filename]; I = imread(path); subplot(2,3,1);imshow(I); xlabel('(a)H&E图像'); %将图像的色彩空间由RGB色彩空间转换到L*A*B*色彩空间 cform=makecform('srgb2lab'); lab_I=applycform(I,cform); %使用K均值聚类算法对L*A*B*色彩空间中的色彩进行分类 ab=double(lab_I(:,:,2:3));%数据类型转换 nrow=size(ab,1);%求矩阵尺寸 ncol=size(ab,2);%求矩阵尺寸 ab=reshape(ab,nrow*ncol,2);%矩阵型转变 ncolors=3;%聚类重复三次避免局部最小值 [c_idx,c_center]=kmeans(ab,ncolors,'distance','sqEuclidean','Replicates',3); %使用k均值聚类算法得到的结果对图像进行标记 pixel_labels=reshape(c_idx,nrow,ncol); subplot(2,3,2);imshow(pixel_labels,[]); xlabel('(b)使用簇索引对图像进行标记'); s_image=cell(1,3); rgb_label=repmat(pixel_labels,[1 1 3]); for k=1:ncolors color=I; color(rgb_label~=k)=0; s_image{k}=color; end subplot(2,3,3);imshow(s_image{1}); xlabel('(c)簇1中的目标'); subplot(2,3,4);imshow(s_image{2}); xlabel('(d)簇2中的目标'); subplot(2,3,5);imshow(s_image{3}); xlabel('(e)簇3中的目标');