%% ImageClassifyLibsvm
% a litter test of image classification based on libsvm
% by xiaochou
% last modified 2016.01.26
%% 清空环境变量
close all;
clear;
clc;
format compact;
%% 读取图像
pic = imread('try.bmp');
figure;
imshow(pic);
%% 选定训练集合测试集
TrainData_sea = zeros(100,3,'double');
TrainData_forest = zeros(100,3,'double');
TrainData_beach = zeros(100,3,'double');
TrainData_earth = zeros(100,3,'double');
TrainData_Smalltree = zeros(100,3,'double');
TrainData_Road = zeros(100,3,'double');
% 采样
msgbox('Please separate sea samples','sea Samples','help');
pause;
[x,y] = ginput(2);
hold on;
plot(x,y,'r*');
x = uint16(x);
y = uint16(y);
TrainData_seas = pic(y(1):y(2),x(1):x(2),1:3);
[X,Y,P] = size(TrainData_seas);
run = 1;
for i = 1:X
for j = 1:Y
TrainData_sea(run,1) = TrainData_seas(i,j,1);
TrainData_sea(run,2) = TrainData_seas(i,j,2);
TrainData_sea(run,3) = TrainData_seas(i,j,3);
run = run+1;
end
end
randindex = randperm(X*Y);% 这个是1到X*Y的随机组合
TrainData_sea = TrainData_sea(randindex(1:100),:);
msgbox('Please separate forest samples','forest Samples','help');
pause;
[x,y] = ginput(2);
hold on;
plot(x,y,'bo')
x = uint16(x);
y = uint16(y);
TrainData_forests = pic(y(1):y(2),x(1):x(2),1:3);
[X,Y,P] = size(TrainData_forests);
run = 1;
for i = 1:X
for j = 1:Y
TrainData_forest(run,1) = TrainData_forests(i,j,1);
TrainData_forest(run,2) = TrainData_forests(i,j,2);
TrainData_forest(run,3) = TrainData_forests(i,j,3);
run = run+1;
end
end
randindex = randperm(X*Y);% 这个是1到X*Y的随机组合