将图像读入工作区。减小图像大小以使示例运行得更快。
RGB = imread('kobi.png');
RGB = imresize(RGB,0.5);
imshow(RGB)
使用 k 均值聚类将图像分割成两个区域。
L = imsegkmeans(RGB,2);
B = labeloverlay(RGB,L);
imshow(B)
title('Labeled Image')
一些像素的标签有误。该示例的后续部分将说明如何通过补充关于每个像素的信息来改进 k 均值分割。
使用每个像素邻域中的纹理信息来补充图像。要获取纹理信息,请使用一组 Gabor 滤波器对图像的灰度版本进行滤波。
创建一组 Gabor 滤波器(包含 24 个),覆盖 6 个波长和 4 个方向。
wavelength = 2.^(0:5) * 3;
orientation = 0:45:135;
g = gabor(wavelength,orientation);
将图像转换为灰度。
I = rgb2gra