Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-04-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Histograma. Obtener máximos y mínimos relativos

Buenas a todos...

Como dice la pregunta... alguien puede indicarme, si es tan amable, ¿como sería el algoritmo para obtener los máximos y mínimos relativos dado un histograma?

Verán... tengo este código, que se que no es muy eficiente:

Código Delphi [-]
PreviusUp := Histogram[MinValue];
          for j := (MinValue + 1) to MaxValue do
            begin
              if Histogram[j] > PreviusUp
                 then begin
                        with Valleys.Maximum do
                          begin
                            inc(Count);
                            SetLength(Value, Count);
                            if (j = (MinValue + 1))
                               then Value[Count - 1] := MinValue
                               else Value[Count - 1] := j;
                          end;
                       end
                 else begin
                        with Valleys.Minimum do
                          begin
                            inc(Count);
                            SetLength(Value, Count);
                            if (j = (MinValue + 1))
                               then Value[Count - 1] := MinValue
                               else Value[Count - 1] := j;
                          end;
                      end;
            end;

Siendo las estructuras de esta manera:

Código Delphi [-]
THistogram = array[0..MAX_RGB] of integer;

  {* Estructura de información asociada a valles *}
  TValleyInfo = record
    Count: integer;
    Value: TIntegerDynArray;
  end;

  {* Estructura asociada a Valles *}
  // Un valle está formado por una secuencia de Maximos y Mínimos
  TValley = record
    Count: integer;
    Maximum: TValleyInfo;
    Minimum: TValleyInfo;
  end;

Se que a el código le falta refinar....
Pero de acuerdo a mi lógica (que es muy probable de que esté errado) debería ir copiando en la estructura de maximum y minimum los valores posicionales del histograma que cumple con los máximos y mínimos dependiendo del valor anterior...

Pues, hago recorrer ambas estructuras y no pasa nada... es como si fuera que no encuentra ningún máximo o minimo:
Código Delphi [-]
ListBox1.Items.Add('--- Valles: ');
        smax := 'Maximos: ';
        smin := 'Minimos: ';
        for j := 0 to Channel[i].Valleys.Maximum.Count - 1 do
          begin
            valor := Channel[i].Valleys.Maximum.Value[j];
            smax := smax + IntToStr(valor) + ',';
          end;
        for j := 0 to Channel[i].Valleys.Minimum.Count - 1 do
          begin
            valor := Channel[i].Valleys.Minimum.Value[j];
            smin := smin + IntToStr(valor) + ',';
          end;

Llevo un tiempo tratando de averiguar donde está la falla... y ya no se por donde ver... aunque el código para obtener los valores no es el correcto... debería ir guardando algo... ¿?

Desde ya muchas gracias por tomarse su tiempo,
Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
 



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Requerimientos mínimos de Vista son muy mínimos vtdeleon La Taberna 2 20-02-2007 23:34:06
Histograma javikanin Varios 16 02-01-2006 23:40:17
Requerimientos minímos Alexander Varios 0 27-06-2005 15:45:36
Maximos Carlex SQL 1 03-02-2005 19:23:53
Graph Meter (histograma) cadena Gráficos 0 01-12-2004 19:29:23


La franja horaria es GMT +2. Ahora son las 14:48:10.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi