Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Trazar clasificación de tierras con características de color y superpíxeles

En este ejemplo se muestra cómo realizar la clasificación de tipos de terreno en función de las entidades de color mediante la agrupación en clústeres k-means y los superpíxeles. Los superpíxeles pueden ser una técnica muy útil al realizar segmentación y clasificación, especialmente cuando se trabaja con imágenes grandes. Los superpíxeles permiten dividir una imagen en un conjunto de regiones estructuralmente significativas, donde los límites de cada región tienen en cuenta la información de borde de la imagen original. Una vez que se divide una imagen en regiones de superpíxeles, se pueden utilizar algoritmos de clasificación para clasificar cada región, en lugar de tener que resolver el problema de clasificación en la cuadrícula de imagen original completa. El uso de superpíxeles puede proporcionar grandes ventajas de rendimiento en la resolución de problemas de clasificación de imágenes, al mismo tiempo que proporciona un resultado de segmentación de alta calidad.

Lea una imagen en el espacio de trabajo. Para un mejor rendimiento, este ejemplo reduce el tamaño de la imagen a la mitad. Visualmente, hay cuatro tipos de tierra que se distinguen en la imagen de mármol azul basada sólo en características de color: regiones boscosas, regiones secas / desérticas, regiones cubiertas de hielo y agua.

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

Convierta la imagen en el espacio de color.L*a*b*

Alab = rgb2lab(A);

Calcular la sobresegmentación de superpíxeles de la imagen original y mostrarla.

[L,N] = superpixels(Alab,20000,'isInputLab',true); BW = boundarymask(L); imshow(imoverlay(A,BW,'cyan'))

Cree una matriz de celdas del conjunto de píxeles en cada región.

pixelIdxList = label2idx(L);

Determine el color medio de cada región de superpíxeles en el espacio de color.L*a*b*

[m,n] = size(L); meanColor = zeros(m,n,3,'single'); for i = 1:N     meanColor(pixelIdxList{i}) = mean(Alab(pixelIdxList{i}));     meanColor(pixelIdxList{i}+m*n) = mean(Alab(pixelIdxList{i}+m*n));     meanColor(pixelIdxList{i}+2*m*n) = mean(Alab(pixelIdxList{i}+2*m*n)); end

Agrupa la función de color de cada superpíxel mediante la función.imsegkmeans

numColors = 4; [Lout,cmap] = imsegkmeans(meanColor,numColors,'numAttempts',2); cmap = lab2rgb(cmap); imshow(label2rgb(Lout))

Utilice centros de clúster como mapa de colores para un mapa temático. Los colores medios encontrados durante la agrupación de K-means se pueden utilizar directamente como un mapa de colores para dar una interpretación visual más natural de las asignaciones de clasificación de la tierra de bosque, hielo, tierra seca y agua.

imshow(double(Lout),cmap)