You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

70 lines
1.7 KiB
Matlab

function test_ism_usps(imageNum,threshold)
if nargin<1 || isempty(imageNum) || imageNum<0
imageNum=1;
end
if nargin<2 || isempty(threshold) || threshold<0
threshold=1
end
spread=2
method{1}='Hough';method{2}='PC/BC-DIM';
%DEFINE CODEBOOK
load('ISM_codebook_USPS.mat');
Locations=postprocess_codebook(Locations,patchClassList,spread);
%DEFINE TEST IMAGE
[images,classes,trainingIndeces,testingIndeces,numClasses]=load_data_usps;
I=preprocess_usps_image(images(imageNum,:));
figured(2),clf, imagesc(I), hold on, axis('equal','tight'); title(' ');
set(gca,'FontSize',24);
%set(gca,'XTick',[],'YTick',[]);
set(gcf,'PaperSize',[20 15],'PaperPosition',[0 0 20 15]);
colormap('gray');
drawnow;
%APPLY METHODS
[param{1},param{2}]=ism_compare_methods(I,patches,patchClassList,Locations,similarityThres);
class=classes(imageNum)
for m=1:length(method)
disp(method{m});
%analyse results as a detection tasks
coords=[];class=[];amplitude=[];
for c=1:numClasses
index=find(param{m}{c}(3,:)>threshold);
class=[class,c.*ones(1,length(index))];
coords=[coords,param{m}{c}(1:2,index)];
amplitude=[amplitude,param{m}{c}(3,index)];
end
%num_per_class(coords)
[~,order]=sort(amplitude,'descend');
disp(' * class:');
disp(class(order));
disp(' * centre coords:');
disp(coords(:,order));
disp(' * amplitude:');
disp(amplitude(order));
%analyse results as a classification task
prob=zeros(1,numClasses);
for c=1:numClasses
maxAmplitude=max(param{m}{c}(3,:));
if ~isempty(maxAmplitude)
prob(c)=maxAmplitude;
end
end
[~,predictedClass]=max(prob)
end
function num=num_per_class(param)
numClasses=length(param);
num=zeros(1,numClasses);
for c=1:numClasses
num(c)=size(param{c},2);
end