traducción de imágenes de matlab
F=imread('p2.bmp');
se = traducir(strel(1), [0 20]);
El parámetro % [0 20] se puede modificar y la distancia de traducción cambiará en consecuencia
J = imdilate(F,se);
figure; p> imshow(J,[]);title('Gráficos después del desplazamiento a la derecha');
%Imagen panorámica(2)
función outImage=immove(inImage,Tx,Ty). )
[m, n] = tamaño( enImagen);
Tx=fix(Tx);
Ty=fix(Ty);
%move x
if (Tx<0)
inImage=imcrop(inImage,[abs(Tx),1,m-abs(Tx),n]
[m, n] = tamaño(inImage);
Tx=0;
end
%move y
if (Ty<0)
inImage=imcrop(inImage,[1,abs(Ty),m,n-abs(Ty)]);
[ m, n] = tamaño(enImagen);
Ty=0;
final
outImage = ceros(m+Ty, n+Tx) ;
outImage(1+Ty:m+Ty,1+Tx:n+Tx) = inImage;
%Rotación de imagen
%X,Y es Nivel
Imagen=imread('02.
Imagen=rgb2gray(Imagen);
ángulo=30;
%Ángulo is Representa cualquier número de ángulo de 30 grados
pai=3.14;
Angle=pai*angle/180
% Convertir representación de ángulo.
[X,Y]=size(Imagen);
% Mostrar imagen original
subplot(2,1,1); p>imshow(Image);
title('Imagen original');
% Calcula las nuevas coordenadas de los cuatro puntos del ángulo para determinar el área de visualización rotada
ArribaIzquierda(1,1)=-(Y-1)*sin(Ángulo);
ArribaIzquierda(1,2)=(Y-1)*cos(Ángulo);
InferiorIzquierda(1,1)=0;
InferiorIzquierda(1,2)=0
SuperiorDerecha(1,1)=(X- 1; )*cos(Ángulo)-(Y-1)*sin(Ángulo);
RightTop(1,2)=(X-1)*sin(Ángulo)+(Y-1)* cos (Ángulo);
InferiorDerecho(1,1)=(X -1)*cos(Ángulo;
InferiorDerecho(1,2)=(X-1)* sin); (Ángulo);
% Calcula el número de filas y columnas en el área de visualización
Xnew=max([LeftTop(1,1),LeftBottom(1,1),RightTop (1,1 ),InferiorDerecha(1,1)])-min([ArribaIzquierda(1,1),InferiorIzquierda(1,1),ArribaDerecha(1,1),ArribaDerecha(1,1)]); p>
Ynew=max([ArribaIzquierda(1,2),AbajoIzquierda (1,2),ArribaDerecha(1,2),ArribaDerecha(1,2)])- min([ArribaIzquierda(1,2), LeftBottom(1, 2),RightTop(1,2),RightBottom(1,2)]);
% Asignar matriz para nueva área de visualización
ImageNew=zeros(round( Xnew),round (Ynew))+255
% Calcula las nuevas coordenadas de cada píxel de la imagen original
para indexX=0:(X-1)
para indexY =0: (Y-1)
ImagenNueva( round(indexX*cos(Angle)-indexY*sin(Angle))+round(abs(min([LeftTop(1 ,1),Inferior izquierdo( 1,1),Superior derecho(1,1),Inferior derecho(1,1)]))+1, 1+ round(indexX*sin(Angle)+indexY*cos(Angle))+round (abs(min([ArribaIzquierda(1,2),AbajoIzquierda(1,2),ArribaDerecha(1,2),ArribaDerecha(1,2)]))))=Imagen(índiceX+1,índiceY+1);
end
end
%show
subplot(2,1,2); (ImageNew)/255)
promp=['Girar imagen en ángulo:' int2str( ángulo) 'de la imagen']
title(promp); p>%Escalado de imagen
función y=resize(a,mul,type)
%********************* *
*********************** *********
%a:ingrese el valor de escala de grises de la imagen
%mul:factor de escala
%tipo: 1 indica el método vecino más cercano, 2 indica interpolación bipolar
% Dibuja la imagen escalada y devuelve su valor en escala de grises
%****************************** ******************* * *****
[m,n]=tamaño(a);
m1=m*mul;n1=n*mul
%; ************************************************** **** ***
si tipo==1
para i=1:m1
para j=1:n1
;b (i,j)=a(ronda(i/mul),ronda(j/mul)
fin
fin
elseif tipo= = 2
para i=1:m1-1
para j=1:n1-1
u0=i/mul;v0; =j/mul ;
u=ronda(u0);v=ronda(v0
s=u0-u;t=v0-v; p>b( i,j)= (a(u+1,v)-a(u,v))*s+(a(u,v+1)-a(u,v))*t+(a( u+1, v+1)+a(u,v)-a(u,v+1)-a(u+1,v))*s*t+a(u,v);
fin
fin
fin
fin
%*** *********** ****************************************
b=uint8( b);
imshow(b);
title('Imagen procesada'); No es fácil. Si estás satisfecho, acepta.