主要内容

地块土地分类与颜色特征和超像素

这个例子展示了如何使用K-means聚类和超像素进行基于颜色特征的土地类型分类。在进行分割和分类时,超像素是一种非常有用的技术,特别是在处理大型图像时。超像素使您能够将图像分解为一组结构上有意义的区域,其中每个区域的边界考虑到原始图像中的边缘信息。一旦将图像分割成超像素区域,就可以使用分类算法对每个区域进行分类,而不必在整个原始图像网格上解决分类问题。使用超像素可以在解决图像分类问题时提供很大的性能优势,同时也可以提供高质量的分割结果。

将图像读入工作区。为了获得更好的性能,本例将图像的大小减少了一半。从视觉上看,在蓝色大理石图像中有四种类型的土地是可区分的,仅基于颜色特征:森林地区,干旱/沙漠地区,冰雪覆盖地区,和水。

一个= imread (“http://eoimages.gsfc.nasa.gov/images/imagerecords/74000/74192/world.200411.3x5400x2700.jpg”);= imresize (0.5);imshow (A)

将图像转换为L * a * b *颜色空间。

Alab = rgb2lab(一个);

计算原始图像的超像素过分割并显示。

(L, N) = superpixels (Alab, 20000,“isInputLab”,真正的);BW = boundarymask (L);imshow (imoverlay (BW,“青色”))

在每个区域中创建像素集合的单元格数组。

pixelIdxList = label2idx (L);

中每个超像素区域的中值颜色L * a * b *颜色空间。

[m, n] =大小(左);meanColor = 0 (m, n 3“单一”);i = 1:N meanColor(pixelIdxList{i}) = mean(Alab(pixelIdxList{i}));meanColor (pixelIdxList{我}+ m * n) =意味着(Alab (pixelIdxList{我}+ m * n));meanColor (pixelIdxList{我}+ 2 * m * n) =意味着(Alab (pixelIdxList{我}+ 2 * m * n));结束

对每个超像素的颜色特征进行聚类imsegkmeans函数。

numColors = 4;(鞠躬,提出)= imsegkmeans (meanColor numColors,“numAttempts”2);提出= lab2rgb城市规划机构(cmap);imshow (label2rgb(鞠躬)

使用集群中心作为主题图的颜色图。在K-means聚类中发现的平均颜色可以直接用作颜色图,给森林、冰、旱地和水的土地分类分配一个更自然的视觉解释。

imshow(双(鞠躬),提出)