ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Software Realizar un algoritmo que gire la imagen 360º con animación en pausas de 10º


Enviado por   •  11 de Junio de 2017  •  Apuntes  •  557 Palabras (3 Páginas)  •  135 Visitas

Página 1 de 3

CORRECCION PRUEBA

EJERCICIO 1

  1. Declaración del problema

Realizar un algoritmo que gire la imagen 360º con animación en pausas de 10º

  1. Teoria

Para la resolucion de este ejercicio vamos a necesitar calcular una matriz de zeros en la que sabemos va a alcanzar la imagen mientras se vaya rotando, lo haremos utilizando el siguiente principio.

[pic 1]

[pic 2]

        2[pic 3]

[pic 4]

[pic 5][pic 6]

[pic 7]

        1[pic 8]

[pic 9][pic 10]

L1= cn=(ceil(filas*abs(sind(angulo)) + columnas*abs(cosd(angulo))));

L2= fn=(ceil(filas*abs(cosd(angulo)) + columnas*abs(sind(angulo))));

Creamos esta matriz con este numero de columnas y filas.

Luego necesitamos calcular el centro original de la imagen como también el nuevo centro respecto al vamos a rotar la imagen.

Para cada calculo aplicamos la función ceil que nos permitirá redondear el numero al entero mas cercano.

Con dos lazos for vamos recorriendo la matriz de zeros creada para pasar pixel a pixel la imagen leida mientras se va rotando.

Colocamos el X y Y nuevos.

x=ceil((e-Xn)*(cosd(angulo)) + (d-Yn)*(sind(angulo)));

y=ceil(-(e-Xn)*(sind(angulo)) + (d-Yn)*(cosd(angulo)));

Con un condicional pasamos pixel a pixel a la imagen si cumplen ciertas condiciones necesarias:

(x>=1 && y>=1 && x

  1. Simulacion

clc, clear all, close all

 

%Animación de giro de una imagen cada 10º

 

%Leyendo la imagen y mostrándola

I = im2double(imread('fruits.jpg'));

figure

imshow(I)

 

%Obtengo las dimensiones de la imagen leída

[filas columnas z]=size(I);

 

for i=0:10:360

    angulo=i;

   

    fn=(ceil(filas*abs(cosd(angulo)) + columnas*abs(sind(angulo))));

    cn=(ceil(filas*abs(sind(angulo)) + columnas*abs(cosd(angulo))));

   

    C =zeros([fn cn 3]);

   

    %Medio de la imagen leída

    Xo=ceil(filas/2);

    Yo=ceil(columnas/2);

   

    %Medio hipermatriz de zeros

    Xn=ceil(fn/2);

    Yn=ceil(cn/2);

   

    %Recorro pixel a pixel la hipermatriz de zeros y copio allí los pixeles

    %de la imagen leída

    for e=1:1:fn

        for d=1:1:cn

            x=ceil((e-Xn)*(cosd(angulo)) + (d-Yn)*(sind(angulo)));

            y=ceil(-(e-Xn)*(sind(angulo)) + (d-Yn)*(cosd(angulo)));

            x=(x+Xo);

            y=(y+Yo);

            if(x>=1 && y>=1 && x

...

Descargar como (para miembros actualizados)  txt (3.2 Kb)   pdf (111.3 Kb)   docx (17.2 Kb)  
Leer 2 páginas más »
Disponible sólo en Clubensayos.com