实验目的
学习SVM、KNN、K-means算法,修改参数,评估分类法性能
实验设计
实验问题
有若干张图片,分别是tank和plane,构建并测试模型,观察不同分类算法的分类效果。
代码分析
提取样本,可在这里修改训练集大小
Pos_size = 50;%正样本数目
Neg_size = 50;%负样本数目
Test_size = 51;%测试样本数目
label1=ones(Pos_size,1); %正样本标签
label2=zeros(Neg_size,1);%负样本标签
label=[label1',label2']';%标签汇总
data=zeros(length(label),1764);%HoG特征存储器
path_pos = strcat(pwd,'\train\tank\');%正样本路径
path_neg = strcat(pwd,'\train\plane\');%负样本路径
path_test = strcat(pwd,'\test\');%测试样本路径
提取HoG特征
%读取正样本并计算HoG特征
for i=1:Pos_size
image=imread(strcat(path_pos,num2str(i),'.JPEG')); %添加正样本路径
im=imresize(image,[64,64]); %修改尺寸
img=rgb2gray(im);
hog=hogcalculator(img);
data(i,:)=hog;
end
%读取负样本并计算hog特征
for j=1:Neg_size
image=imread(strcat(path_neg,num2str(j),'.JPEG')); %添加负样本路径
im=imresize(image,[64,64]);
img=rgb2gray(im);
hog=hogcalculator(img);
data(Pos_size+j,:)=hog;
end
data_all=[data label];
%读取测试样本并计算hog特征
for j=1:Test_size
test=imread(strcat(path_test,num2str(j),'.jpg'));
im=imresize(test,[64,64