Beiträge von Swoncen

    Nein, es wird auf ein Video angewandt und der Benutzer soll den Wölbungsgrad verändern können. Aber wenn ichs mir so recht überleg, ist die extra Matrix eine Super Idee. Auch wenn der Benutzer die Wölbung ändern kann, kann man ja die gleiche Matrix verwenden, solange der Wölbungsgrad gleich ist und nur für einen neuen Wölbungsgrad wieder berechnen. Das spart sicher Sauviel Zeit. Danke@Wolfi!

    Wegen dem arctan hab ich noch immer keine Lösung...

    Ich hab mal meine Implementation auf einem Pentium 3 1300 getestet mit einem Bild von 800*600 Pixel und es braucht ca 100 ms. Wenn ich ein Bild mit 320*240 nehm, dauerts ca. 50 ms. Auf einem P4 2,66 GHz nur 10 ms. Ich glaub die Matrix brauch ich nicht, obwohls eine gute Idee ist. Danke für die Hilfe!

    Faszinierend. Rapid Prototyping mit C++? :)
    Wenn das C++-Programm nur zum Wegwerfen ist, dann ist Optimierung für die Katz...


    Die Taylorreihe konvergiert nur für |x| <= 1, aber es gilt arctan 1/x = pi/2 - arctan x. Hilft das?



    Ich machs deswegen in C++, weil ich mir da schon seit sehr langer Zeit eine ImageProcessing Klasse programmiert hab, die mittlerweile ziemlich groß ist und für Testzwecke sehr praktisch. Was meinst du mit "Wenn das C++-Programm nur zum Wegwerfen ist, dann ist Optimierung für die Katz..."?

    Für Wurzel hab ich das Newtonsche Näherungsverfahren genommen.
    Für Sinus: sin(x) = x - x^3/3! + x^5/5! - x^7/7! + x^9/9!
    Für Cosinus: Sinus(PI/2 - x)
    Für Exponential: 1 + x + x^2/2 + x^3/6 + x^4/24 + x^5/120 + x^6/720

    Für den Arcustangens hab ich noch nix richtiges..

    Für die Wurzel hab ich als Startwert einfach eine Tabelle genommen:

    Code
    [size=10][size=10][size=10][/SIZE][size=10][COLOR=#0000ff]if[/COLOR][/SIZE][size=10](x > 100000) a_1 = 500;
    [/SIZE][size=10][COLOR=#0000ff]else[/COLOR][/SIZE][size=10] [/SIZE][size=10][COLOR=#0000ff]if[/COLOR][/SIZE][size=10](x > 10000) a_1 = 100;
    [/SIZE][size=10][COLOR=#0000ff]else[/COLOR][/SIZE][size=10] [/SIZE][size=10][COLOR=#0000ff]if[/COLOR][/SIZE][size=10](x > 1000) a_1 = 50;
    [/SIZE][size=10][COLOR=#0000ff]else[/COLOR][/SIZE][size=10] [/SIZE][size=10][COLOR=#0000ff]if[/COLOR][/SIZE][size=10](x > 100) a_1 = 10;
    [/SIZE][size=10][COLOR=#0000ff]else[/COLOR][/SIZE][size=10] [/SIZE][size=10][COLOR=#0000ff]if[/COLOR][/SIZE][size=10](x > 10) a_1 = 5;[/SIZE]
    [size=10]

    [/SIZE]

    Ist zwar schirch, aber schnell und für meine Anwendung komm ich dann wirklich super hin mit nur !!!4!!! Iterationen.

    mfg
    [/SIZE][/SIZE]

    Ich hab vergessen, es war auch die Wurzel dabei.

    Ich hab jetzt sqrt, cos, sin und exp durch eigene Approximationen ersetzt und das Programm braucht nur noch ein fünftel der Zeit mit den normalen Funktionen! Dabei sind die Approximationen teilweise so genau, dass es überhaupt nicht bemerkbar ist. Mich würde noch interessieren, ob nur ich das Problem mit diesen Funktionen hab.

    Hallo!

    Ich hab grad den Fischaugeneffekt für ein Bild programmiert und hab ein Problem mit der Geschwindigkeit. Ich brauche für die Berechnung für einen Großteil der Pixel im Bild die Funktionen: cosinus, sinus, arcus tangens und exp. Das Problem an der Geschichte ist, dass genau diese Funktionen die Berechnung so extrem verlangsamen, dass ich mir überlegt hab, die Funktionen durch eigene Approximationen zu ersetzen. Bevor ich aber die Funktionen schreibe, wollte ich fragen, ob jemand weiß, obs solche Funktionen schon gibt? Im moment läufts noch unter C++, aber im Endeffekt brauch ichs dann in Java. Oder vielleicht gibts da eine andere Abhilfe?

    mfg

    aber es is nicht korrekter.. Und ehrlich gesagt ich tu mir leichter, wenn ich wirklich weiß, wieviel abgezogen wird.. weil wenn ich jetzt 3 mehr abziehen muss, was zieh ich dann ab? Was steht 3 Werte hinter '0'? Jedem wie ers lieber hat, aber darüber herziehn braucht keiner.

    Was soll daran Schund sein? Ein character ist im Prinzip nur ein Zahlenwert, der durch eine Tabelle einem Zeichen entspricht. Was spricht dagegen von einem Wert eine Zahl abzuziehen? Und wie kommst du darauf, dass '0' "korrekter" ist?

    Man muss '0' abziehen? Na Mahlzeit..

    Du hast also die Zahl in einem char Array stehen? Wenn das wirklich character aus der ASCII Tabelle sind, dann musst du 48 abziehen. Das liegt daran, dass das ZEICHEN "0" in der Tabelle den Wert 48 hat usw.

    siehe z.B.: http://bueltge.de/wk-ascii-zeichen/162

    Also:

    Code
    [size=10][/SIZE][size=10][COLOR=#0000ff][size=10][/SIZE][size=10][COLOR=#0000ff]char[/COLOR][/SIZE][size=10]* [COLOR=black]Zahl = [/COLOR][/SIZE][size=10][COLOR=black]"123"[/COLOR][/SIZE][size=10][COLOR=black];[/COLOR]
    [/SIZE][size=10][COLOR=#0000ff]int[/COLOR][/SIZE][size=10] [COLOR=black]quersumme = (Zahl[0]-48) + (Zahl[1]-48) + (Zahl[2]-48);[/COLOR]
    [/SIZE][/COLOR][/SIZE][size=10]
    [/SIZE]



    müsste funktionieren

    Ich muss ehrlich sagen, mir gefallens auch nicht. Damit will ich nicht sagen, dass sie schlecht sind, sondern ich find nichts aufregendes an den Bildern. Besonders die Fotos, bei denen man den Fotografen im Spiegel sieht find ich einfach komisch. Dem kann ich nichts abgewinnen. Viel Spass trotzdem beim weiteren Fotografieren.