MATLAB - 监督分类/分段

时间:2012-05-01 05:39:52

标签: image matlab image-processing classification image-segmentation

我目前正与PRtools合作。 我对我正在做的事情非常感兴趣。

请有人可以指导我如何从训练数据集到分类器吗? 我查看训练和测试数据的所有示例都是从同一个数据集中生成的,在本例中为A,随机如下:

A=datafile(2:end,1:end-1);
labs=datafile(2:end,end);
A=dataset(A,labs);
A=setprior(A,[0.5 0.5]);
[B,C] = gendat(A,0.2);
W = pca(B,2);  % compute PCA on training set only
A2 = A*W;      % maps all data to 2D
B2 = B*W;      % maps training set to 2D
C2 = C*W;      % maps test set to 2D
figure; gridsize(50); scatterd(A2,'legend');
V = B2*ldc;    % compute classifier in 2D
plotc(V);      % plot in 2D
D = C2*V;      % classify
testc(D);      % compute error
confmat(D)     % compute confusion matrix 

然而,我有不同纹理的训练图像。计算特征;

train = dataset(double(glcm_features));     
train_label = setlabels(a, label(:,1));

但我的测试图像是单个图像上2个或更多纹理的组合:http://i.imgur.com/hLjPh.jpg

为了做到这一点,请有人能给我一些关于我需要做什么的指导吗? 我被卡住了,因为我显然它没有测试集的标签,它给了我错误说标签预期......

请帮忙。 先感谢您。

=======================更新

我真正想做的是,如何让程序对包含多个纹理的图像中的纹理进行分类

enter image description here

1 个答案:

答案 0 :(得分:0)

首先,我不明白你想做什么。但是,要计算分类错误,您需要随身携带groundtruth / true标签。但正如您所说,您没有测试集的标签,因此您无法计算错误。

但是,通常所做的是将训练集分为两组,称为训练集和验证集。您使用训练集进行训练,并在具有真实标签的验证集上计算分类错误。

假设您的测试集和训练集来自同一分布,您可以将验证集上计算的误差推广为测试集上的预期误差。