Ver Mensaje Individual
  #19  
Antiguo 21-09-2008
erikmx erikmx is offline
Miembro
 
Registrado: nov 2007
Posts: 40
Reputación: 0
erikmx Va por buen camino
:)

Gracias Neftali por tu valiosa ayuda, y perdon por la tardanza en contestar, estoy buscando los materiales (tela) que funcionen mejor para la cuestion de que detecte bien los colores hice una pequeña prueba pero con la webcam de la compu sobre una pequeña bandera hecha de plastico (bolsa negra) pero no me funciono claro que la luz era de foco y lo ideal es que sea con luz solar para que la imagen salga con mejor calidad, y creo sera mejor tela para que no cree "reflejos" sobre la superficie de la bandera.

Por otro lado detecta muy bien ahora con los cambios los contornos independientemente de los colores que tenga la bandera claro una vez seleccionado el color de la misma, solo el detalle de los angulos que cheque, parece que no detecta correctamente los mismos:


Código Delphi [-]
  // LINEAS DETECTADAS
  imgBandera2.Canvas.Pen.Width := 3;
  imgBandera2.Canvas.Pen.Color := clRed;
  imgBandera2.Canvas.Brush.Color := clRed;

  imgBandera2.Canvas.MoveTo(x1b, y1b);
  imgBandera2.Canvas.LineTo(x2b, y2b);
  imgBandera2.Canvas.LineTo(x1ib, y1ib);
  imgBandera2.Canvas.LineTo(x1b, y1b);


  // LINEAS PARA ANGULOS
  imgBandera2.Canvas.Pen.Width := 5;
  imgBandera2.Canvas.Pen.Color := clBlue;
  imgBandera2.Canvas.Brush.Color := clBlue;

  imgBandera2.Canvas.MoveTo(x1ib, y1ib);
  imgBandera2.Canvas.LineTo(x2b, y2b);
  imgBandera2.Canvas.MoveTo(x1ib, y1ib);
  imgBandera2.Canvas.LineTo(x1ib, y2b);

  // si es 90 grados o casi no se ve bien, así que alargamos...
  if (Abs(y2b - y1ib) < 100) then begin
    imgBandera2.Canvas.MoveTo(x1ib, y1ib);
    imgBandera2.Canvas.LineTo(x1ib, y1ib + 100);
  end;


//Para Calcular el Angulo
    ang := ArcTan2(y2b,x1ib);    // "y" para la vertical "x" para la Horizontal
    angd := RadToDeg(ang);

    // Resultado
    Angulo.Text := IntToStr(Trunc(angd)) + '°';
    Velocidad.Text := IntToStr(Trunc(angd/4));

end;
Creo que el detalle esta en la orientacion, es decir en el punto que se concidera el grado 0° o tal ves me equivoco ya que para poder calcular con el metodo de la bandera utilizan este transportador como referencia





Por cierto Neftali muchas gracias por tu paciencia

Última edición por erikmx fecha: 21-09-2008 a las 01:41:05. Razón: Me desconfiguro el codigo delphi :(
Responder Con Cita