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.
Code #1: Using MATLAB Library function
% 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' ); |
Code #2: Using matrix manipulation
% 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' ); |
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:
% 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' ); |
Input image: leaf.png
Output: