How can I determine what matrix is needed to flip an image upside down?

10 views (last 30 days)
I need to write a program that will flip an image upside down. This is for a linear algebra class so I am not allowed to use flipud(). I must find a transformation matrix (T) which can be multiplied by an image (X) to give the flipped image.
T*X_original = X_flipped
I'm not sure where to start with this. Thanks!

Accepted Answer

Image Analyst
Image Analyst on 27 Oct 2013
Edited: Image Analyst on 27 Oct 2013
Try this:
flippedMatrix = originalMatrix(end:-1:1, :);
% Alternatively (less efficient) but what you want.
T = zeros(size(originalMatrix, 1)); % INitialize.
for k = 1 : size(originalMatrix, 1)
T(k, end-k+1) = 1;
end
T % Print to command window.
flippedMatrix2 = T * originalMatrix

More Answers (1)

Youssef  Khmou
Youssef Khmou on 27 Oct 2013
Edited: Youssef Khmou on 27 Oct 2013
Generally that type of matrices are for euclidean space where a vector or a set of vector can be rotated with a cos and sin rotation matrix, however there might a real matrix that provide what you described , in the mean while you try this way :
X=im2double(imread('circuit.tif')); % Original image
[m n]=size(X);
Y=X(m:-1:1,n:-1:1); % flipped image upside down
% gievn T*X=Y , is T bounded operator ??????? can you answer this equation
T=Y*pinv(X); % Pseudo inverse because Y is not square .

Categories

Find more on Images in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!