我正在尝试在matlab中实现fcm算法,但我很难将我的群集数据重新整形为原始的3D图像矩阵。我已经开始使用以下代码:
img = imread('yellowlily.jpg');
img = im2double(img);
img = imresize(img,0.0125);
img = rgb2hsv(img);
[x,y, z] = size(img);
img = reshape(img, [], z);
我这样做是为了将fcm应用于两个簇。 我收到算法后:
[center, U] = fcm(img,2);
maxU = max(U);
index1 = find(U(1,:) == maxU);
index2 = find(U(2,:) == maxU);
这会产生一个集群:
cluster1 = img(index1,1:3);
如何撤消原始重塑
img = reshape(img, [], z);
在这部分图像上起作用?