Matlab - PROBLEMA AL DIBUJAR RECTA CON ALGORITMO DEL PUNTO MEDIO EN UNA IMAGEN

 
Vista:
sin imagen de perfil

PROBLEMA AL DIBUJAR RECTA CON ALGORITMO DEL PUNTO MEDIO EN UNA IMAGEN

Publicado por Carlos (10 intervenciones) el 19/02/2018 14:24:58
Hola, tengo el siguiente problema. Estoy intentando dibujar una recta en una imagen usando el algoritmo del punto medio para rectas pero no me funciona porque solamente me asigna un valor en la ultima posicion de la imagen.
Aqui os dejo dos funciones dibuja_pixel y dibujaconpuntero

1
2
3
4
5
6
7
8
function resultado=dibuja_pixel(x,y,image,color)
[m,n]=size(image);
if x <=m & y<=n
 
    image(x,y)=color;
end
resultado = image;
end

Dibuja pixel tiene como entrada la coordenadas de un punto x, y la matriz imagen y el color o brillo
Y lo que hace es comprobar que no te sales de la matriz y asignar el valor del color.

Y la siguiente funcion hace lo siguiente:
P1 Y P2 son dos puntos dados como un vector con coordenadas x,y la entrada es la imagen y el brillo es el colo asignado al pixel.
La funcion solamente sigue el algoritmo del punto medio
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
function salida=dibujaconpuntero(p1,p2,entrada,brillo)
y=p1(2);
dy= (p2(2)-p1(2));
dx= (p2(1)-p2(1));
d=2*dy - dx;
res = entrada;
for x=p1(1):p2(1)
 
    devuelve = dibuja_pixel(x,y,res,brillo);
 
    if d <0
        d = d + 2*dy;
    else
        y=y+1; d = d+2*dy-2*dx;
    end
 
end
salida=devuelve;
end
Alguien me puede decir donde esta el error?
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