我在 matlab 上的一个项目拇指识别系统上。我实现了 Kmean 算法,我也得到了结果。实际上,现在我想像他们在这里所做的那样绘制结果。我正在尝试,但无法做到。我正在使用以下代码。
load training.mat; % loaded just to get trainingData variable
labelData = zeros(200,1);
labelData(1:100,:) = 0;
labelData(101:200,:) = 1;
k=2;
[trainCtr, traina] = kmeans(trainingData,k);
trainingResult1=[];
for i=1:k
trainingResult1 = [trainingResult1 sum(trainCtr(1:100)==i)];
end
trainingResult2=[];
for i=1:k
trainingResult2 = [trainingResult2 sum(trainCtr(101:200)==i)];
end
load testing.mat; % loaded just to get testingData variable
c1 = zeros(k,1054);
c1 = traina;
cluster = zeros(200,1);
for j=1:200
testTemp = repmat(testingData(j,1:1054),k,1);
difference = sum((c1 - testTemp).^2, 2);
[value index] = min(difference);
cluster(j,1) = index;
end
testingResult1 = [];
for i=1:k
testingResult1 = [testingResult1 sum(cluster(1:100)==i)];
end
testingResult2 = [];
for i=1:k
testingResult2 = [testingResult2 sum(cluster(101:200)==i)];
end
在上面的代码trainingData
中是 200 X 1054 的矩阵,其中 200 是拇指图像,1054 是列。实际上每张图像都是 25 X 42。我将每张图像重新塑造成行矩阵 (1 X 1050) 和 4 个其他(一些特征)列,所以每张图像总共有 1054 列。同样testingData
,我以与我制作类似的方式制作testingData
它也是 200 X 1054 的顺序。现在我的问题只是像他们在这里所做的那样绘制结果。