Matlab - Ayuda de rotacion de imagenes en matlab

 
Vista:

Ayuda de rotacion de imagenes en matlab

Publicado por Karla Palma (3 intervenciones) el 08/12/2009 01:38:13
Hola,

Necesito si alguien puede ayudarme a realizar una rotación de una imagen en Matlab, pero sin usar interpolación, necesito que los valores de intensidad se conserven.

Saludos y Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda de rotacion de imagenes en matlab

Publicado por fismat (391 intervenciones) el 08/12/2009 14:22:50
Hola Karla,

Una imagen es una matriz de datos, asi que puedes usar la funcion rot90 de matlab para rotar la matriz en multiplos de 90 grados en sentido antihorario.

Saludos
Fismat
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda de rotacion de imagenes en matlab

Publicado por Jorge (226 intervenciones) el 08/12/2009 22:23:06
Se pueden utilizar las siguientes funciones relacionadas:

fliplr -- gira matrices derecha a izquierda
flipud -- gira matrices de arriba a abajo
rot90 -- rota matrices 90 grados

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda de rotacion de imagenes en matlab

Publicado por lucera (119 intervenciones) el 10/12/2009 17:56:42
rotate o rotate3d para graficas en tres dimensiones o view
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda de rotacion de imagenes en matlab

Publicado por Karla Palma (3 intervenciones) el 10/12/2009 18:58:14
Hola a todos,

Gracias por sus comentarios, pero esas opciones ya las había intentado, lo que sucede es que yo necesito que mueva los pixeles de posición sin afectarse los valores, ya que si aplico el imrotate o cualquiera de los otros, estos se basan en métodos de interpolacion y pues quisiera lograr una rotacion sin utilizar la interpolacion. (un ejemplo sería como lo maneja el image J). No se si me explico.

Saludos, y gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda de rotacion de imagenes en matlab

Publicado por fismat (391 intervenciones) el 10/12/2009 19:10:56
Hola Karla,

Encontre el siguiente link:

http://www.programmersheaven.com/mb/ctocplusplustomatlab/375650/375650/scaling-and-rotating-images/?S=B20000

estoy seguro que te sera de alguna ayuda.

Saludos
Fismat

%Rotación por grados en una matriz
clc, clear all, close all
A=ones(100);
n=size(A);
for x=n(1)/2-40:n(1)/2+40
for y=n(2)/2-4:n(2)/2+4
A(x,y)=0;
end
end
np=0;
npx=0;
npy=0;
for x=1:n(1);
for y=1:n(2);
if A(x,y)==0;
np=np+1; %Area de la figura
npx=npx+x; %Acumulando renglones si se cumple la condición
npy=npy+y; %Acumulando columnas si se cumple la condición
end
end
end
npx=round(npx/np); %Coordenada centro x
npy=round(npy/np); %Coordenada centro y
H=sqrt(n(1)^2+n(2)^2); %Radio de longitud máxima
H=2*H;

newang=input('Ingresar nuevo ángulo: ');
B=ones(n);
angulo=pi/360;
for theta=0:angulo:2*pi-angulo;
for r=1:H;
x=round(r.*cos(theta)+npx);
y=round(r.*sin(theta)+npy);
if A(x,y)==0;
i=round(r.*cos(theta+newang)+npx);
j=round(r.*sin(theta+newang)+npy);
B(i,j)=0;
elseif A(round(r.*cos(0)+npx),round(r.*sin(0)+npy))==0;
B(round(cos(0)+npx),round(sin(0)+npy))=0;
else
break
end
end
end

subplot(1,2,1)
imagesc(A)
colormap gray
axis off

subplot(1,2,2)
imagesc(B)
colormap gray
axis off
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda de rotacion de imagenes en matlab

Publicado por fismat (391 intervenciones) el 10/12/2009 19:13:04
Hola Karla,

Aca otro link

http://www.physicsforums.com/archive/index.php/t-68594.html

Saludos
Fismat
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar