-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathssim_test.m
68 lines (64 loc) · 1.99 KB
/
ssim_test.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
%{
for(i=1:1:9)
ref{i} = imread(sprintf('Reference_Images/%d.jpg',i-1));
testOut = pc_resize(ref{i},32,24);
imwrite(testOut,sprintf('Reference_Images/%d_rs.jpg',i-1));
end
%}
%{
for(i=1:1:9)
ref_rs{i} = imread(sprintf('Reference_Images/%d_rs.jpg',i-1));
end
%}
disp('Reading resized images...');
ref = cell(1,9);
for(i=1:1:9)
ref{i} = 1 - imbinarize(rgb2gray(imread(sprintf('Reference_Images/%d_rs.jpg',i-1))));
end
figure(1);
title('Structural similarity values for digits 0-8');
horiz = 0:1:8;
for(i=1:1:9)
simvals = zeros(1,9);
for(j=1:1:9)
simvals(j)=ssim(ref{i},ref{j});
end
subplot(3,3,i);
stem(horiz,simvals);
axis([0 8 0 1]);
xlabel(sprintf('ssim of %d',i-1));
end
%imresize
function imOut = pc_resize(im,height,width)
% change width and height
diff_left = floor((width - size(im,2))/2);
diff_right = ceil((width-size(im,2))/2);
diff_top = floor((height - size(im,1))/2);
diff_bottom = ceil((height - size(im,1))/2);
for(i=1:1:3)
imTemp = im(:,:,i);
fprintf('Cells %d\n',i);
if((diff_left+diff_right)>0) %image is smaller: pad array
fprintf('Growing width\n');
imTemp = padarray(imTemp,[0 diff_left],255,'pre');
imTemp = padarray(imTemp,[0 diff_right],255,'post');
elseif((diff_left+diff_right)<0)
fprintf('Shrinking width\n');
beg = 1-diff_left;
endidx = size(im,2)+diff_right;
imTemp = imTemp(:,beg:1:endidx);
end
if(diff_top+diff_bottom>0) %image is smaller: pad array
fprintf('Growing height\n');
size(imTemp)
imTemp = padarray(imTemp,[diff_top 0],255,'pre');
imTemp = padarray(imTemp,[diff_bottom 0],255,'post');
elseif(diff_top+diff_bottom<0) %
fprintf('Shrinking height\n');
beg = 1-diff_top;
endidx = size(im,1)+diff_bottom;
imTemp = imTemp(beg:1:endidx,:);
end
imOut(:,:,i)=imTemp;
end
end