How can I determine what matrix is needed to flip an image upside down?
10 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
gm76
am 27 Okt. 2013
Kommentiert: Youssef Khmou
am 28 Okt. 2013
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!
0 Kommentare
Akzeptierte Antwort
Image Analyst
am 27 Okt. 2013
Bearbeitet: Image Analyst
am 27 Okt. 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
Weitere Antworten (1)
Youssef Khmou
am 27 Okt. 2013
Bearbeitet: Youssef Khmou
am 27 Okt. 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 .
0 Kommentare
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!