function T = traslacionDirecta( I, t)
%TRASLACION Traslada una imagen el vector t
%   Emplea transf.directa 
%   T = traslacionDirecta( I, t)
%   Imagen T del mismo tamaño que I
%   Emplea vecino más próximo.
%   Ejemplo:                                                  
%       I = imread('caja01.bmp');                                            
%       t=[100,10];                                                                                   
%       T=traslacionDirecta(I,t);                                                   
%       imshow(T);                                                           

%_________________________________________________________________________%
% NOMBRE DEL FICHERO:   traslacionDirecta.m                               %
% RECIBE:   Imagen de niveles de gris I                                   %
% DEVUELVE: La misma imagen trasladada el vector t, de igual tamaño que I.%
% ALGORITMO EMPLEADO: Transformación directa. Vecino más próximo          %                      
% VARIABLES:   I = imagen en niveles de gris a trasladar                  %
%              t = vector. La imagen se traslada ese vector               %
%              T = imagen  resultante                                     %
%              filas = numero de filas de I                               %
%              columnas = numero de columnas de I                         %
%              isal = fila donde es mapeada el pix(i,j) de imag. de ent.  % 
%              jsal = colum. donde es mapeada  pix(i,j) de imag. de ent.  %
% BUGS:                                                                   %
% SUPOSICIONES : La imagen de salida es del mismo tamaño.                 %                   
%                Puede perderse una parte significativa de la imagen      %
% LIBRO  VISION ARTIFICIAL INDUSTRIAL. UNIVERSIDAD DE VALLADOLID 2012     %
% TEMA 3 MANIPULACIÓN GEOMÉTRICA DE LA IMAGEN                             %
% AUTORES: Eusebio de la Fuente y Félix Miguel Trespaderne                %
%_________________________________________________________________________%

[filas,columnas]=size(I);
T=zeros(filas,columnas);   %la imagen result. T será del mismo tamaño que I

for i=1:filas
    for j=1:columnas
        
        isal= i + t(1);
        jsal= j + t(2);
        %redondeo al entero más próximo
        isal=round(isal);
        jsal=round(jsal);
        %comprobamos que cae dentro de la imagen
        if(isal>0 && isal<filas && jsal>0 && jsal<columnas)
            T(isal,jsal)=I(i,j);
        end
    end
end
T=mat2gray(T);
end

