--- a
+++ b/bilinear.m
@@ -0,0 +1,46 @@
+function [im_zoom] = bilinear( array_recon )
+%bilinear interpolation of an image is done here 
+a=array_recon;
+factor=1;   %zooming factor
+
+[m n d] = size(a);  %2 dimentional array values              
+rows=factor*m;
+columns=factor*n;
+
+for i=1:rows  
+    x=i/factor;   
+    x1=floor(x); %bilinear in X direction
+    x2=ceil(x);
+    if x1==0
+        x1=1;
+    end
+    xrem=rem(x,1);
+    for j=1:columns        
+        y=j/factor;
+        
+        y1=floor(y);    %bilinear in Y direction
+        y2=ceil(y);
+        if y1==0
+            y1=1;
+        end
+        yrem=rem(y,1);
+        
+        BottomLeft=a(x1,y1,:);
+        TopLeft=a(x1,y2,:);
+        BottomRight=a(x2,y1,:);
+        TopRight=a(x2,y2,:);
+        
+        R1=BottomRight*yrem+BottomLeft*(1-yrem);
+        R2=TopRight*yrem+TopLeft*(1-yrem);
+        
+        im_zoom(i,j)=R1*xrem+R2*(1-xrem);
+    end
+end
+%size(im_zoom)
+%size(imagebig)
+%ssd=sum(sum(sum((imagebig-im_zoom).*(imagebig-im_zoom))))
+%imwrite(im_zoom,'bilinear zoom.png');
+%imshow(im_zoom);
+
+end
+