Trying to flip image without using the built in function

Trying to write a function that reads in an image and then flips the image so that its appearance is a mirror image of the original image. Here is my code for my attempt. Not quite working, if has anyone could provide some suggestions, it would be appreciated.

 Respuesta aceptada

function B = myflipped_image_lr()
A = imread('horse.jpg');
figure(1)
imshow(A);
B = A(:,end:-1:1,:);
figure(2)
imshow(B);
end

2 comentarios

Just for my own understanding, could you explain how B = A(:,end:-1:1,:); is flipping the image. I confused about the logic. Thanks
For example if there were 5 columns, then end would be 5, and end:-1:1 would be 5:-1:1 which would be [5 4 3 2 1]. The code would then be equivalent to A(:, [5 4 3 2 1], :) which extracts the data with the columns in reverse order.
Historically, fliplr() used exactly this logic of end:-1:1 (but has a different internal implementation now, calling a built-in routine)

Iniciar sesión para comentar.

Más respuestas (2)

Hint:
Replace
[ii, jj] = size(A);
with
[ii, jj, numberOfColorChannels] = size(A);
% To create the mirror image of an image without using pre defined function
clc;
clear all;
close all;
A = imread('C:\Users\Student\Desktop\shivam_1069.jpg');
subplot(2,2,1);
imshow(A);
B = A(:,end:-1:1,:);
subplot(2,2,2);
imshow(B);

Etiquetas

Preguntada:

el 8 de Feb. de 2018

Respondida:

el 30 de Jul. de 2019

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by