Red de conocimientos turísticos - Conocimientos sobre calendario chino - Utilice MATLAB para realizar la traducción, escalado y rotación de imágenes a través de cambios de matriz. Requiere un programa para realizar ambas al mismo tiempo.

Utilice MATLAB para realizar la traducción, escalado y rotación de imágenes a través de cambios de matriz. Requiere un programa para realizar ambas al mismo tiempo.

Basado en el cálculo matricial:

Después de la traslación y la rotación, se necesita interpolación para mostrar la imagen completa clear?all;?close?all;?clc;

img=imread('lena.bmp');

[h?w]=size(img);?

Parámetros de traducción y rotación

a ?= ?10;?b?=?20;

theta?=?30?/180*pi;?

?Matriz de rotación

rot= [cos (theta)?-sin(theta)?0; sin(theta)?cos(theta)?0; 0?01];

?Matriz de traducción

move? =? [?1?0?a; 0?1?b; 0?0?1];

Traslación más rotación

rot?=?rot?*?move;

Traslación más rotación

rot?=?rot?*?move

p>

pix1=[a?b?1]*rot; ; ?Coordenadas del punto superior izquierdo?

pix2=[a?w b?1]*rot;??Coordenadas del punto superior derecho?

pix3=[h a?b ?1]*rot; ?¿Las coordenadas del punto inferior izquierdo?

pix4=[h a?w b?1]*rot; ?Las coordenadas del punto inferior derecho

height?=?round(max([abs(pix1(1)-pix4(1))?abs(pix2(1)-pix3(1))]));?La imagen transformada ¿Altura?

width?=?round(?max([abs(pix1(2)-pix4(2))?abs(pix2(2)-pix3(2))]));?Transform ¿El ancho de la imagen final?

imgn=zeros(alto,ancho);?

delta_y?=?abs(min([pix1(1)?pix2(1)?pix3( 1)?pix4(1) )]));?

delta_x?=?abs(min([pix1(2)?pix2(2)?pix3(2)?pix4(2)])) ;?

for?i=1-delta_y:height for?j=1-delta_x:width

pix=[i?j?1]/rot;?después de la transformación Utilice las coordenadas de los puntos de la imagen para encontrar las coordenadas de los puntos de la imagen original,

float_Y=pix(1)-floor(pix(1));

float_X=pix(2)-floor (pix( 2));

if?pix(1)gt;=1?amp;amp;?pix(2)gt;=1?amp;amp;?pix(1)?lt ;=? h?amp;amp;?pix(2)?lt;=?w?

pix_up_left=[floor(pix(1))?floor(pix(2))];?cuatro puntos adyacentes

pix_up_right=[suelo(pix(1))?ceil(pix(2))];?

pix_down_left=[techo(pix(1)) ?suelo(pix(2) ))];

pix_down_right=[ceil(pix(1))?ceil(pix(2))];?

value_up_left=(1- float_X)*(1- float_Y);

value_up_right=flotante

_X*(1-float_Y);?

value_down_left=(1-float_X)*float_Y;?

value_down_right=float_X*float_Y;?

imgn( i delta_y, j delta_x)?=?value_up_left*img(pix_up_left(1), pix_up_left(2)) ...

value_up_right*img(pix_up_right(1), pix_up_right(2)) ...

value_down_left*img(pix_down_left(1), pix_down_left(2)) ...

value_down_right*img(pix_down_right(1), pix_down_right(2));?

end

end?

end?

imshow(uint8(imgn));title('Traducción, rotación e interpolación');

p>

iv>