a b/bilinear.asv
1
function [im_zoom] = bilinear( array_recon )
2
%UNTITLED5 Summary of this function goes here
3
%   Detailed explanation goes here
4
5
a=array_recon;
6
factor=1;   %zooming factor
7
8
[m n d] = size(a);  %2 dimentional array                 
9
rows=factor*m;
10
columns=factor*n;
11
12
for i=1:rows-1    
13
    x=i/factor;   
14
    x1=floor(x); %bilinear in X direction
15
    x2=ceil(x);
16
    if x1==0
17
        x1=1;
18
    end
19
    xrem=rem(x,1);
20
    for j=1:columns        
21
        y=j/factor;
22
        
23
        y1=floor(y);    %bilinear in Y direction
24
        y2=ceil(y);
25
        if y1==0
26
            y1=1;
27
        end
28
        yrem=rem(y,1);
29
        
30
        BottomLeft=a(x1,y1,:);
31
        TopLeft=a(x1,y2,:);
32
        BottomRight=a(x2,y1,:);
33
        TopRight=a(x2,y2,:);
34
        
35
        R1=BottomRight*yrem+BottomLeft*(1-yrem);
36
        R2=TopRight*yrem+TopLeft*(1-yrem);
37
        
38
        im_zoom(i,j,:)=R1*xrem+R2*(1-xrem);
39
    end
40
end
41
%size(im_zoom)
42
%size(imagebig)
43
%ssd=sum(sum(sum((imagebig-im_zoom).*(imagebig-im_zoom))))
44
%imwrite(im_zoom,'bilinear zoom.png');
45
%imshow(im_zoom);
46
47
end
48