How can I determine what matrix is needed to flip an image upside down?
9 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
Kategorien
Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!