TEP , The Engineering Projects , Tutorials

MATLAB

zoom image in matlab, matlab image zooming, bilinear interpolation in matlab, matlab bilinear interpolation
TEP , The Engineering Projects , Boxes

Image Zooming with Bilinear Interpolation in MATLAB

TEP , THe Engineering Projects , Shares 2.5K Views
TEP , The ENgineering Projects , Reaction 40
TEP , The ENgineering Projects , Reaction 700
TEP , The ENgineering Projects , Reaction 60
TEP , The ENgineering Projects , Reaction 25
TEP , The ENgineering Projects , Reaction 60
TEP , The Engineering Projects , Pintrest TEP , The Engineering Projects , Pintrest TEP , The Engineering Projects , Pintrest TEP , The Engineering Projects , Pintrest TEP , The Engineering Projects , Pintrest TEP , The Engineering Projects , Pintrest TEP , The Engineering Projects , Pintrest TEP , The Engineering Projects , Pintrest
Shares: 691
TEP , The Engineering Projects , PCBWAY

zoom image in matlab, matlab image zooming, bilinear interpolation in matlab, matlab bilinear interpolation
Hello friends, hope you all are fine and having fun with your lives. Today, I am going to share a simple tutorial on Image zooming with bilinear Interpolation in MATLAB. We have seen many software in which there's an option of zooming an image. For example, if you have used paint or photoshop then you have seen that you can zoom your image quite easily by clicking a button. Today's we are gonna do the same thing but in MATLAB and we will have a look at the code behind this feature.

Now, when we are zooming some image then in fact we are increasing the pixels of that image and in order to do that we have to fill those extra pixels with the color of their neighbor pixel. This thing is know as interpolation. There are many different techniques for interpolation and the one we are gonna use for this tutorial is known as Bilinear Interpolation. Bilinear interpolation is simple type of linear interpolation in which we simply apply interpolation formula on both the x and y axis. So, let's have a brief overview of Bilinear Interpolation first and then we will move on to MATLAB implementation.

What is Bilinear Interpolation ?

  • As I explained earlier, Bilinear Interpolation is a simple interpolation technique in which we fill the gaps between pixels using the neighbor pixels.
  • For example, we have an unknown pixel in between four pixels, and let's say the unknown pixel is f(x,y) and it is surrounded by four pixels which are:
    1. Q11 = (x1y1).
    2. Q12 = (x1y2).
    3. Q21 = (x2y1).
    4. Q22 = (x2y2).
  • All these four neighbor pixels are known , now by using Bilinear Interpolation we can find the values of this unknown pixel.
  • Now, first of all, we will move in the x direction only.
  • The formula used for Bilinear Interpolation for x factor is:
Image Zooming with Bilinear Interpolation in MATLAB
  • Now after calculating these x formulas, now we will move in y direction and the formulas are:
zoom image in matlab, matlab image zooming, bilinear interpolation in matlab, matlab bilinear interpolation
  • Now using these formulas we can quite easily find our unknown pixel f(x,y) using Bilinear interpolation. These formulas are taken from Wiki Page of Bilinear Interpolation and you can read more details about it there.
  • Now we have seen the Bilinear Interpolation so now let's move and see How to do Image Zooming using this Bilinear interpolation in MATLAB.

Image Zooming with Bilinear Interpolation in MATLAB

  • You can download the complete code by clicking the below button but also read the post, as I have explained this code in this remaining post.

Download MATLAB Code for Image Zooming

  • In order to do image zooming with Bilinear Interpolation in MATLAB, first of all, what you need to do is to read an image file, which I have done using this simple formula:
im0=imread('TEP.jpg');
im=cast(im0,'int16');
imshow(cast(im,'uint8'));
[h,v,d]=size(im);
  • So, in this above code, what we did is , we simply read the image file which I have named as TEP.jpg
  • After that I have converted this image file into int16 and then to uint8 and finally I get the size of this image file using size command.
  • After that I have applied a simple algorithm and have zoomed my image using below code:
for i=1:h
    for j=1:v
      im1(1+(i-1)*fac,1+(j-1)*fac,:)=im(i,j,:); 
    end
       imshow(cast(im1,'uint8')); 
end
  • Now in the above loop what we have done is we simply enhanced our image and named it as im1, I have used a variable fac, which is factor, its user defined like if you want to zoom image by 2 then factor will be 2.
  • Now we have enhanced our image, next thing we need to do is to apply the bilinear Interpolation on this complete image and we will get the result.
  • Here's the complete code for Image Zooming with Bilinear Interpolation in MATLAB.
function bilinear_zoom(fac)

im0=imread('TEP.jpg');
im=cast(im0,'int16'); 
imshow(cast(im,'uint8'));
[h,v,d]=size(im);

for i=1:h
    for j=1:v
      im1(1+(i-1)*fac,1+(j-1)*fac,:)=im(i,j,:); 
    end
       imshow(cast(im1,'uint8')); 
end

%bilinear interpolation
for i=1:1+(h-2)*fac     %row number
    for j=1:1+(v-2)*fac %column number
    
       if ((rem(i-1,fac)==0) && (rem(j-1,fac)==0)) 
       else  
           h00=im1( ceil(i/fac)*fac-fac+1,ceil(j/fac)*fac-fac+1,:); 
           h10=im1( ceil(i/fac)*fac-fac+1+fac,ceil(j/fac)*fac-fac+1,:);
           h01=im1( ceil(i/fac)*fac-fac+1,ceil(j/fac)*fac-fac+1+fac,:);
           h11=im1( ceil(i/fac)*fac-fac+1+fac,ceil(j/fac)*fac-fac+1+fac,:);
           
           x=rem(i-1,fac); %coordinates of calculating pixel.
           y=rem(j-1,fac);  
          
           dx=x/fac; %localizeing the  pixel being calculated to the nearest four know pixels.
           dy=y/fac;
          
           b1=h00;    %constants of bilinear interpolation.
           b2=h10-h00;
           b3=h01-h00;
           b4=h00-h10-h01+h11;           
           im1(i,j,:)=b1+b2*dx+b3*dy+b4*dx*dy; %equation of bilinear interpolation.
         end
        end
  imshow(cast(im1,'uint8'));
end

imshow(cast(im1,'uint8'));
imwrite(cast(im1,'uint8'),'zoomed_pic.jpg');
  • Now if you check in the Bilinear Interpolation code, we have applied the same equations which we have discussed in the above section.
  • The Image I have used for this code is as follows:
555 timer projects, 555 timer tutorials, 555 timer tutorial, 555 timer project, 555 timer circuits
  • Now in MATLAB window, I have given this command bilinear_zoom(2) , where fac = 2, so I am increasing my image by factor 2. So it will be zoomed by 2 times.
  • Its the image from my 555 Timer post but as I have posted it recently so this image was on my desktop thats why I used it. :P
  • The result obtained is as follows:
zoom image in matlab, matlab image zooming, bilinear interpolation in matlab, matlab bilinear interpolation
  •  Now you can see the image has been zoomed and is now looking big and because of Bilinear Interpolation in MATLAB we haven't lost the in between pixels.
  • Here's a video for this tutorial, which will give you better idea of How to do Image Zooming with Bilinear Interpolation in MATLAB.
That's all for today, I hope you have enjoyed this post. Will meet you guys in the next tutorials soon. Till then take care. :)
TEP , The Engineering Projects , Tagszoom image in matlab
matlab image zooming
bilinear interpolation in matlab
matlab bilinear interpolation
TEP , The Engineering Projects , Comments

Write a Comment

TEP , The Engineering Projects , WordPress TEP , The Engineering Projects , Google TEP , The Engineering Projects , Twitter TEP , The Engineering Projects , Facebook TEP , The Engineering Projects , User
TEP , The Engineering Projects , Robot
TEP , The Engineering Projects , Comments Comments on ‘’ Image Zooming with Bilinear Interpolation in MATLAB ‘’ (2)
TEP , The Engineering Projects , Comment
TEP , The ENgineering Projects , Reaction 40
TEP , The ENgineering Projects , Reaction 700
TEP , The ENgineering Projects , Reaction 60
TEP , The ENgineering Projects , Reaction 25
TEP , The ENgineering Projects , Reaction 60
what does this command do. How it is related with ur code if ((rem(i-1,fac)==0) && (rem(j-1,fac)==0) ? Why did you convert first to int16 and then to uint8?
TEP , The Engineering Projects , Add

Top PCB Design Service

PCB
TEP, The Engineering Projects, PCB Online
TEP , The Engineering Projects , Add

Embedded Tools

ARDINO
TEP , The Engineering Projects , ARDUINO
TEP , The Engineering Projects , Subscribe

Subscribe Now !!!

Learn Free Pro Tricks

TEP , The Engineering Projects , Mail Receive Quality Tutorials Straight in your Inbox by Submitting your Email ID Below
TEP , The Engineering Projects , Mail
TEP , The Engineering Projects , Books

Engineering Books

TEP , The Engineering Projects , Arduino Programming Book
SALE $20
Text Book for arduino $20
TEP , The Engineering Proects , Star TEP , The Engineering Proects , Star TEP , The Engineering Proects , Star TEP , The Engineering Proects , Star TEP , The Engineering Proects , Star (5.0)
TEP , The Engineering Projects , Arduino Programming Book
SALE $20
Text Book for raspberry pi $20
TEP , The Engineering Proects , Star TEP , The Engineering Proects , Star TEP , The Engineering Proects , Star TEP , The Engineering Proects , Star TEP , The Engineering Proects , Star (3.0)
TEP , The Engineering Projects , Arduino Programming Book
SALE $20
Text Book for arduino $20
TEP , The Engineering Proects , Star TEP , The Engineering Proects , Star TEP , The Engineering Proects , Star TEP , The Engineering Proects , Star TEP , The Engineering Proects , Star (4.7)
TEP , The Engineering Projects , Arduino Programming Book
SALE $20
Text Book for raspberry pi $20
TEP , The Engineering Proects , Star TEP , The Engineering Proects , Star TEP , The Engineering Proects , Star TEP , The Engineering Proects , Star TEP , The Engineering Proects , Star (5.0)
TEP , The Engineering Projects , Category

Categories

TEP , The Engineering Projects , Arduino
TEP , The Engineering Projects , Notification 20K
TEP , The Engineering Projects , Tick 900
TEP , The Engineering Projects , Views 900
TEP , The Engineering Projects , Comments 20K
TEP , The Engineering Projects , Arduino
TEP , The Engineering Projects , Notification 20K
TEP , The Engineering Projects , Tick 900
TEP , The Engineering Projects , Views 900
TEP , The Engineering Projects , Comments 20K
TEP , The Engineering Projects , Arduino
TEP , The Engineering Projects , Notification 20K
TEP , The Engineering Projects , Tick 900
TEP , The Engineering Projects , Views 900
TEP , The Engineering Projects , Comments 20K
TEP , The Engineering Projects , Arduino
TEP , The Engineering Projects , Notification 20K
TEP , The Engineering Projects , Tick 900
TEP , The Engineering Projects , Views 900
TEP , The Engineering Projects , Comments 20K
TEP , The Engineering Projects , Arduino
TEP , The Engineering Projects , Notification 20K
TEP , The Engineering Projects , Tick 900
TEP , The Engineering Projects , Views 900
TEP , The Engineering Projects , Comments 20K
TEP , The Engineering Projects , Arduino
TEP , The Engineering Projects , Notification 20K
TEP , The Engineering Projects , Tick 900
TEP , The Engineering Projects , Views 900
TEP , The Engineering Projects , Comments 20K
TEP , The Engineering Projects , Arduino
TEP , The Engineering Projects , Notification 20K
TEP , The Engineering Projects , Tick 900
TEP , The Engineering Projects , Views 900
TEP , The Engineering Projects , Comments 20K
TEP , The Engineering Projects , Arduino
Matlab
200
TEP , The Engineering Projects , Notification 20K
TEP , The Engineering Projects , Tick 900
TEP , The Engineering Projects , Views 900
TEP , The Engineering Projects , Comments 20K
TEP , The Engineering Projects , Arduino
TEP , The Engineering Projects , Notification 20K
TEP , The Engineering Projects , Tick 900
TEP , The Engineering Projects , Views 900
TEP , The Engineering Projects , Comments 20K