How to vertically flip an Image using MATLAB

Prerequisite: Image representation in MATLAB

In MATLAB, Images are stored in matrices, in which each element of the matrix corresponds to a single discrete pixel of the image. We can flip the given image vertically (along the x-axis), if we reverse the order of the pixels (elements of the matrix) in each column as illustrated in the below image.

Vertically Flipped Image

Code #1: Using MATLAB Library function

filter_none

edit
close

play_arrow

link
brightness_4
code

% Read the target image file
img = imread('leaf.png');
   
% Reverse the order of the element in each column
vertFlip_img = flip(img, 1);
   
% Display the vertically flipped image
imshow(vertFlip_img); 
title('Vertically flipped image');

chevron_right


Code #2: Using matrix manipulation



filter_none

edit
close

play_arrow

link
brightness_4
code

% Read the target image file
img = imread('leaf.png');
   
% Flip the columns vertically 
vertFlip_img = img(end : -1: 1, :, :);
   
% Display the vertically flipped image
imshow(vertFlip_img); 
title('Vertically flipped image');

chevron_right


Code #3: Using matrix manipulation (Using loops)

Approach:

  • Read the source image file in MATLAB environment
  • Get the Dimensions of the image matrix
  • Reverse the order of the elements of each column in every image plane
  • Display the water image (vertically flipped image).

Below is the implementation of the above approach:

filter_none

edit
close

play_arrow

link
brightness_4
code

% Read the target image file
img = imread('leaf.png');
   
% Get the dimensions of the image
[x, y, z] = size(img);
   
   
% Reverse elements of each column
% in each image plane (dimension)
for plane = 1 : z
    len = x;
    for i = 1 : x 
        for j = 1 : y
   
            % To reverse the order of the element
            % of a column we can swap the 
            % topmost element of the row with
            % its bottom-most element  
              
            if i < x/2 
                temp = img(i, j, plane);
                img(i, j, plane) = img(len, j, plane);
                img(len, j, plane) = temp;
                 
            end
        end
        len = len - 1;
    end
end
   
   
% Display the vertically flipped image
imshow(img); 
title('Vertically flipped image');

chevron_right


Input image: leaf.png
Input image

Output:
Output Image




My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.


Article Tags :

Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.