--- 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 +