Red de conocimiento informático - Aprendizaje de programación - traducción de imágenes de matlab

traducción de imágenes de matlab

%Imagen pan(1)

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)]);

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.