K-means对图像进行分类

代码

inputImg = double(imread('ti.jpg'));
inputKmeans = reshape( inputImg , size(inputImg,1)*size(inputImg,2) , 3 );
outK = kmeans( inputKmeans , 3 );
outImg = zeros( size(inputImg) );
d = reshape( outK, size(inputImg,1), size(inputImg,2) );
for ii = 1:size(inputImg,1)
    for jj = 1:size(inputImg,2)
        outImg(ii,jj,d(ii,jj)) = 1;
    end
end
figure
imshow(outImg)

图片

处理前:
K-means对图像进行分类_第1张图片

处理后:
K-means对图像进行分类_第2张图片

结论

由图知,绿色区域是道路区域。但是由于图片没有滤波等操作,因此会有一些误差

你可能感兴趣的:(matlab相关)