Esta página aún no se ha traducido para esta versión. Puede ver la versión más reciente de esta página en inglés.

Realizar transformación de traducción simple 2-D

En este ejemplo se muestra cómo realizar una transformación afín simple llamada traducción. En una traducción, se desplaza una imagen en el espacio de coordenadas agregando un valor especificado a las coordenadas x e y. (También puede utilizar la función para realizar la traducción.)imtranslate

Lee la imagen a transformar. En este ejemplo se crea una imagen de tablero de ajedrez mediante la función.checkerboard

cb = checkerboard; imshow(cb)

Obtener información de referencia espacial sobre la imagen. Esta información es útil cuando desea mostrar el resultado de la transformación.

cb_ref = imref2d(size(cb))
cb_ref =    imref2d with properties:             XWorldLimits: [0.5000 80.5000]            YWorldLimits: [0.5000 80.5000]               ImageSize: [80 80]     PixelExtentInWorldX: 1     PixelExtentInWorldY: 1     ImageExtentInWorldX: 80     ImageExtentInWorldY: 80        XIntrinsicLimits: [0.5000 80.5000]        YIntrinsicLimits: [0.5000 80.5000]  

Cree una matriz de transformación de 3 por 3, llamada en este ejemplo, que defina la transformación.T En esta matriz, especifica el número de píxeles para desplazar la imagen en la dirección horizontal y especifica el número de píxeles para desplazar la imagen en la dirección vertical.T(3,1)T(3,2)

T = [1 0 0; 0 1 0; 20 30 1]
T = 3×3

     1     0     0
     0     1     0
    20    30     1

Cree un objeto de transformación geométrica que defina la traducción que desea realizar. Dado que las transformaciones de conversión son un caso especial de la transformación afín, el ejemplo utiliza un objeto de transformación geométrica para representar la traducción.affine2d Cree un objeto pasando la matriz de transformación 3 por 3, al constructor.affine2dTaffine2d

tform = affine2d(T);

Realice la transformación. Llame a la función especificando la imagen que desea transformar y el objeto de transformación geométrica. Devuelve la imagen transformada,.imwarpimwarpcb_translated En este ejemplo también se devuelve el objeto de referencia espacial opcional, que contiene información de referencia espacial sobre la imagen transformada.cb_translated_ref

[cb_translated,cb_translated_ref] = imwarp(cb,tform);

Ver el original y la imagen transformada lado a lado usando la función en conjunción con.subplotimshow Al ver la imagen traducida, puede parecer que la transformación no tuvo ningún efecto. La imagen transformada se ve idéntica a la imagen original. La razón por la que no se aprecia ningún cambio en la visualización es porque los tamaños de la imagen de salida son lo suficientemente grandes como para contener toda la imagen transformada, pero no todo el espacio de coordenadas de salida.imwarp Tenga en cuenta, sin embargo, que los valores de coordenadas se han cambiado por la transformación.

figure; subplot(1,2,1); imshow(cb,cb_ref); subplot(1,2,2); imshow(cb_translated,cb_translated_ref)

Para ver la totalidad de la imagen transformada en la misma relación con el origen del espacio de coordenadas que la imagen original, utilíla con el parámetro, especificando un objeto de referencia espacial.imwarp'OutputView' El objeto de referencia espacial especifica el tamaño de la imagen de salida y la cantidad de espacio de coordenadas de salida que se incluye en la imagen de salida. Para ello, el ejemplo realiza una copia del objeto de referencia espacial asociado a la imagen original y modifica los límites de coordenadas mundiales para acomodar el tamaño completo de la imagen transformada. El ejemplo establece los límites de la imagen de salida en coordenadas universales para incluir el origen de la entrada

cb_translated_ref = cb_ref; cb_translated_ref.XWorldLimits(2) = cb_translated_ref.XWorldLimits(2)+20; cb_translated_ref.YWorldLimits(2) = cb_translated_ref.YWorldLimits(2)+20;  [cb_translated,cb_translated_ref] = imwarp(cb,tform,'OutputView',cb_translated_ref);  figure, subplot(1,2,1); imshow(cb,cb_ref); subplot(1,2,2); imshow(cb_translated,cb_translated_ref)

Consulte también

| |

Temas relacionados