层次聚类算法在图象处理中的应用

时间:2022-08-03 06:01:42

层次聚类算法在图象处理中的应用

摘要:聚类分析在任何涉及多维数据分析或处理的学科中都是很普遍的。计算机视觉领域中的图像分割经常表示成一个聚类问题。现在聚类方法在模式识别,图像处理,信息检索中的应用越来越受关注,本文就是研究层次聚类算法在图象处理中的应用,将一张图片用层次聚类方法分类。

关键词:层次聚类;图象处理;数据挖掘

中图分类号:TP391.41 文献标识码:A文章编号:1007-9599 (2011) 11-0000-01

Hierarchical Clustering Algorithm Applications

in Image Processing

Zhang Xin Zhao Cheng

(Pearl River College,Tianjin University of Finance and Economics,Tianjin301811,China)

Abstract:In any cluster analysis or multidimensional data analysis process involves the disciplines are very common.In the field of computer vision image segmentation is often represented as a clustering problem.Now clustering in pattern recognition,image processing,information retrieval using more and more attention,this article is to study the hierarchical clustering algorithm in image processing applications,the method of image classification using hierarchical clustering.

Keywords:Hierarchical clustering;Image processing;Data mining

一、聚类分析的基本思想

我们所研究的样品或指标(变量)之间存在程度不同的相似性(亲疏关系)。于是根据一批样品的多个观测指标,具体找出一些能够度量样品或指标之间相似程度的统计量,以这些统计量为划分类型的依据。把一些相似程度较大的样品(或指标)聚合为一类,把另外一些彼此之间相似程度较大的样品(或指标)又聚合为另一类,关系密切的聚合到一个小的分类单位,关系疏远的聚合到一个大的分类单位,直到把所有的样品(或指标)聚合完毕,这就是分类的基本思想。

二、算法思路

聚类,就是将数据划分为若干个“簇”,使“簇”之间的距离尽可能的大,“簇”之内的距离尽可能的小。层次聚类方法是聚类中的最常用方法,层次聚类方法又包括凝聚聚类和分裂聚类。二者不同之处在于,凝聚算法初始时,每一个成员都组成一个单独的簇,在以后的迭代过程中,再把那些相临的簇合并为一个簇,直到所有的成员组成一个簇为止。而分裂算法则在初始时所有元组都属于同一个簇,然后将上层的簇重复地分裂为两个下层簇,直到每一个元组都组成一个单独的簇为止。本文采用的是凝聚聚类进行图像分割。

三、层次聚类算法在图象处理中的应用

图象分割算法代码:

he=imread('pillsetc.png');%加载图片

figure;%输出原图

imshow(he);

cform=makecform('srgb2lab');

lab_he=applycform(he,cform);

ab=double(lab_he(:,:,2:3));

nrows=size(ab,1);

ncols=size(ab,2);

X=reshape(ab,nrows*ncols,2);

nColors=3;

Y=pdist(X,'mahal'); %计算像素之间的距离

Z=linkage(Y,'average');

cluster_idx=cluster(Z,'maxclust',nColors); %选择计算类之间距离的方法

%调用层次聚类算法对像素进行聚类

pixel_labels=reshape(cluster_idx,nrows,ncols);

%用灰度图显示分类效果图

figure;%输出灰度分类图

imshow(pixel_labels,[]),title('image labeled by cluster index');

%将在原图中的不同类单独显示出来(分割)

segmented_images=cell(1,3);

rgb_label=repmat(pixel_labels,[113]);

fork=1:nColors

color=he;

color(rgb_label~=k)=0;

segmented_images{k}=color;

end

figure; %输出第一分类图

imshow(segmented_images{1}),title('objects in cluster 1');

figure; %输出第二分类图

imshow(segmented_images{2}),title('objects in cluster 2');

figure; %输出第三分类图

imshow(segmented_images{3}),title('objects in cluster 3');

四、小结

在本文算法中,利用高斯混合模型和描述彩色图像,并用层次聚类算法对高斯模型中的各个参数进行估计,从而达到图像分割的目的。实验结果表明,该算法是合理的,也能给出一个较为理想的分割结果。

参考文献:

[1]杨春梅,万柏坤,高晓峰.基因聚类分析中数据预处理方式和相似度的选择[J].自然科学进展,2006,16(3):293-299

[2]杨小兵.聚类分析中若干关键技术的研究[D].杭州:浙江大学,2005

[作者简介]张鑫(1984-),男,助教。

上一篇:浅谈国土系统等级保护自查 下一篇:广西建筑工程质量检测行业现状及其发展探讨