Español
Foro

Kurve glätten

 

Walter
Köhler
¡Hola Profaner Yo habe una Problema y todavía no Lösungsansatz. Problembeschreibung: Yo nehme con uno Kamera una bewegtes Objeto en, y registriere el X/Y Koordinaten su en uno Liste. Dann bilde Yo, el Weg des Objeto mittels "Lineto" después de. So weit tan bueno. Problema: El Objektverfolgung es no muy genau, el Linie es por lo tanto algo zitterig. Yo habe einiges encima "glätten" gegoogelt, (Bezier etc, ) aber el me está de el Matte her a hoch; sorry. Sombrero Alguien una Concepto Yo una unregelmäßige "zitterige" Kurve glätten kann Walter Profano 11.2

127 kB
Hochgeladen:21.09.2018
Ladeanzahl113
Descargar
 
WKS Win XP Xprofan 10 AMD 1.6GHz 1GB Ram
21.09.2018  
 




RAW
¡Hola,

sin ahora en Execl o. ä. a verweisen, restos con profanen Mitteln sólo el Möglichkeit, una eigenen Filter a escribir. Um Kurvenwerte a glätten (engl. smooth) querer wir ahora veces smoothen:

Der einfachste Weg es una gedachtes Quadrat, para Ejemplo 3 x 3 Kästchen (oder 5 x 5, usw.), de el aktuellen Valor después de vorne en el mögliche Kurve a legen y el Mittelwert el linken Reihe - el mittleren Reihe y rechten Reihe auszurechnen. So voluntad Ausreißer (después de +y / -y) geglättet. In esta Kästchen puede auch todavía spezielle Filterwerte hinzugerechnet voluntad (z. B. -2,-1,0,+3,+3), así el allg. Principio. Den aktuellen Mittelwert erhält uno, si z.B. el letzten (hinteren) 3 Werte gemittelt voluntad.

Filter puede mehrmals verwendet voluntad. Je glatter se el Kurve...
 
21.09.2018  
 




p.specht

Ist weit lejos su, una solución a el problema a ser, porque uno como viel adaptar muss, z.B. x y y vertauschen. Aber el Principio sería denke Yo passen. Das Teil es no de me, y allfällige Rechte Dritter müssten sólo geprüft voluntad. Also: Ohne jedwede Garantie y rein a Demonstrationszwecken:
Título de la ventana "Interpolation zw. Stützwerten por Polynomkoeffizienten-Anpassung"
Ventana de Estilo 24:randomize:CLS rnd(8^8):font 2:set("decimals",18)
'{********************************************************
'*       Polynomial Interpolation or Extrapolation       *
'*              of a Discreet Function F(x)              *
'* ----------------------------------------------------- *
'* SAMPLE RUN:                                           *
'* (Example: Function sin(x) - 2*cos(x) is given by 12   *
'*          points from x=0 to x=1.1.                    *
'*          Extrapolate for x=1.255).                    *
'*                                                       *
'*  For X             =  1.255                           *
'*  Estimated Y value =  .3294023272245815               *
'*  Estimated Error   = -8.273064603451457E-11           *
'*  Exact Y value     =  .3294023272200048               *
'*                                                       *
'* ----------------------------------------------------- *
'* REFERENCE: "Numerical Recipes, The Art of Scientific  *
'*             Computing By W.H. Press, B.P. Flannery,   *
'*             S.A. Teukolsky and W.T. Vetterling,       *
'*             Cambridge University Press, 1986"         *
'*                                                       *
'*                  Basic Release By J-P Moreau, Paris.  *
'*                           (www.jpmoreau.fr)           *
'*********************************************************
'*                                                       *
'*      XProfan-Versión  2014-10 by P.Pájaro carpintero, Wien       *
'*                                                       *
'*********************************************************
'}
' PROGRAM TEST_POLINT
Var n&=12' Number of points
Declarar X![N&],Y![N&],C![N&],D![N&]
Declarar i&,x1!,xx!,fct!,yy!,DY!

REPEAT

    ' El Stützwerte müssten NICHT necesariamente en gleichen Abständen mentira!
    ' define tables X and Y 'ACHTUNG: ARRAY WIRD MIT BASISINDEX 1 GEFÜHRT!
    X![1] = 0.0
    X![2] = 0.1
    X![3] = 0.2
    X![4] = 0.3
    X![5] = 0.4
    X![6] = 0.5
    X![7] = 0.6
    X![8] = 0.7
    X![9] = 0.8
    X![10]= 0.9
    X![11]= 1.0
    X![12]= 1.1

    Whileloop n&:i&=&Loop

        X1! = X![I&]
        FCT!=FCT(X1!)
        Y![I&] = FCT!

    Endwhile

    proc FCT :parámetros x1!

        ' FUNCTION FCT(X1) ' Statt Tabelleneingabe el Y-Stützwerte
        ' se hier una bekannte Función herangezogen.
        ' Das erlaubt una Prüfung el Genauigkeit el Interpolation
        FCT! = SIN(X1!) - 2.0 * COS(X1!)
        RETORNO FCT!

    ENDPROC

    ' ANWENDUNG DES GEFUNDENEN POLYNOMS
    ' Vorgabe uno X-Wertes y Abfrage el intern gefundenen Interpolationsformel
    imprimir "\n EINGABE:  X-Valor, para el Y a interpolieren es "
    imprimir " (En X=0 se eingebauter Testwert 1.255 verwendet) X = ";
    input xx! : caso xx!=0 : XX! = 1.255
    ' INTERPOLATION
    yy!=POLINT(X1!,N&,XX!,YY!)
    ' AUSGABE
    caso %csrlin>20:cls rnd(8^8)
    PRINT
    PRINT "     Für el gesuchte X = ";format$("%g",XX!)
    PRINT "  Interpolierter Y-Valor = ";format$("%g",YY!)
    PRINT "       Letzte Corrección = ";format$("%g",DY!)
    X1! = XX! : FCT!=FCT(X1!)
    PRINT " Exakter Vergleichswert = ";format$("%g",FCT!)
    PRINT "--------------------------------------------------\n"

UNTIL 0

proc STOP :sound 2000,100: waitinput:FIN

ENDPROC

Proc POLINT :parámetros X!,N&,XX!,YY!

    '*****************************************************
    '  Origianl-Subroutine: POLINT(X,Y,N,XX,YY,DY)       *
    '*****************************************************
    '*     Polynomial Interpolation or Extrapolation     *
    '*            of a Discreet Function                 *
    '* ------------------------------------------------- *
    '* INPUTS:                                           *
    '*    X:    Table of abscissas (N)                   *
    '*    Y:    Table of ordinates (N)                   *
    '*    N:    Number of points                         *
    '*   XX:    Interpolation abscissa value             *
    '* OUTPUT:                                           *
    '*   YY:    Returned estimation of function for X    *
    '*   DY:    Estimated error for YY                   *
    '*****************************************************
    Declarar NS&,dif!,dift!,C![n&],D![n&],m&,ho!,hp!,w!,el!
    NS& = 1
    DIF! = ABS(XX! - X![1])

    whileloop n&:i&=&Loop

        DIFT! = ABS(XX! - X![1])

        IF DIFT! < DIF!

            NS& = I&'index of closest table entry
            DIF! = DIFT!

        ENDIF

        C![I&] = Y![I&]'Initialize the C"s and D"s
        D![I&] = Y![I&]

    endwhile

    YY! = Y![NS&]'Initial approximation of Y
    NS& = NS& - 1

    whileloop n&-1:m&=&Loop

        whileloop n&-m&:i&=&Loop

            HO! = X![I&] - XX!
            HP! = X![I& + M&] - XX!
            W! = C![I& + 1] - D![I&]
            DEN! = HO! - HP!

            IF DEN! = 0

                PRINT
                PRINT " *** FEHLER: ZWEI STÜTZWERTE WIDERSPRECHEN SICH! *** "
                STOP

            ENDIF

            DEN! = W! / DEN!
            D![I&] = HP! * DEN!'Actualización the C's and D's
            C![I&] = HO! * DEN!

        endwhile

        IF (2*NS&) < (N&-M&)' After each column en the tableau XA is completed,

            DY! = C![NS&+1]' we decide which correction, C or D, we want to

        ELSE' add to our accumulating value of Y, i.e. which

            DY! = D![NS&]' path to take through the tableau, forking up or
            NS& = NS& - 1' down. We do this en such a way as to take the

        ENDIF' most "straight line" route through the tableau to

        ' its apex, updating NS accordingly to keep track
        YY! = YY! + DY!' of where we are. This route keeps the partial

    endwhile' approximations centered (insofar as possible) on

    ' the target X.The last DY added is thus the error
    RETORNO YY!' indication.
    endpro

Wichtig: No a viele Stützwerte, sonst se el Sache más todavía zittriger!
El manuelle Entrada-Bucle wäre entonces por el deseado Zwischenwerte a sustituir y como Punkte con kurzen Lineto-Stücken einzutragen. Alternativ podría uno auch una "gleitenden Durchschnitt" de 3 a 5 Punkten forma.
 
Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'...
21.09.2018  
 




RAW
Hier una einfaches Praxis-Ejemplo de obigem Contribución, en Ausreißer en uno Kurve a glätten:

Beispielwerte uno ansteigenden Kurve (y-Werte):
114, 116, 120, 123, 124, 127, 129, 150, 133, 136 / Ausreißer 150

Nehmen wir a, wir posición al Punkt 127 (en x-Richtung el 6. Punkt).
Der Mittelwert el vorderen 3 Werte de 129, 150, 133 lautet: 137 / Ausreißer 150
Der größte Valor de 150 se ahora a 137.
Wiederholung el vorderen 3 Werte de 129, 137, 133 ergibt 133.

Nun sustituir wir el vorderen 3 Werte con el Valor 133 - voila... / glattere Kurve

Als Lösungsansatz dürfte dieses Ejemplo vollends genügen.
 
22.09.2018  
 



Unterthema: Kurve glätten gelöst  [...]  producido.
 
24.09.2018  
 



Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

5.408 Views

Untitledvor 0 min.
ecki10.02.2023
Rolf Koch13.02.2022
Normann Strübli31.03.2020
p.specht05.09.2019
Más...

Themeninformationen

Dieses Thema ha 3 subscriber:

Walter Köhler (2x)
RAW (2x)
p.specht (1x)


Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie