How can I determine what matrix is needed to flip an image upside down?
    6 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 Multidimensional Arrays 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!


