Ergebniswerte für den Testfall?

Benutzeravatar
Blubb
Windoof-User
Windoof-User
Beiträge: 28
Registriert: 18. Feb 2006 15:54

Ergebniswerte für den Testfall?

Beitrag von Blubb » 12. Nov 2007 14:33

Hallo,

unser Programm ist im Prinzip fertig, nur würden wir gerne mal Vergleichswerte haben um zu sehen ob wir das richtig implementiert haben.

Könntet Ihr bitte mal für den gegebenen Testfall z.B. die Responsecurve nach x Iterationen angeben?

Vielen Dank und Gruß
Blubb

Drno
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 236
Registriert: 10. Feb 2005 20:16

Beitrag von Drno » 12. Nov 2007 18:50

Kurve für die Testdaten (max.hdrgen)
11 Iterationen Rot,
7 Iterationen Grün,
18 Iterationen Blau

Bild
Programming today is a race between software engineers striving to build bigger and better idiot proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.

Benutzeravatar
Blubb
Windoof-User
Windoof-User
Beiträge: 28
Registriert: 18. Feb 2006 15:54

Beitrag von Blubb » 12. Nov 2007 19:02

Ok, dann frag ich doch mal ganz offen: wie habt ihr die Umkehrfunktion f^(-1) implementiert?

Unser erster Ansatz war wenn man f^-1(x) berechnen will, dass man eben schaut welches Intervall dazugehört und die mitte davon nimmt. Nur geht das eben nicht für das letzte Intervall (I_254,infinity). Also war meine letzte Idee dann eben doch den Wert für I_(x-1) zu nehmen.

Bitte gebt mir mal einen Tip, ansonsten ist ja alles im Paper angegeben und problemlos implementiert. :p

Drno
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 236
Registriert: 10. Feb 2005 20:16

Beitrag von Drno » 12. Nov 2007 19:13

Also für f(^-1) haben wir nichts gesondert gemacht. F^(-1) ist ja eigentlich nur das was in Î_m steht. Also nachdem unserer Konvergenzkriterium erfüllt ist, plotten wir Î_m als unsere Response-Kurve.
Programming today is a race between software engineers striving to build bigger and better idiot proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.

Benutzeravatar
Blubb
Windoof-User
Windoof-User
Beiträge: 28
Registriert: 18. Feb 2006 15:54

Beitrag von Blubb » 12. Nov 2007 19:24

Hmm, ich glaube unser Problem liegt dann in Formel 8.

Bild

Ich dachte die I_y_ij darin würden dann eben unsere I_m sein, ist das falsch? Also die "zurückggeschätzten" Realwerte.

Und dazu müsste man dann eben zu dem Farbwert y_ij (zwischen 0 und 255) den zurückgerechneten "Realwert" finden.

Oder ist der Gedanke völlig falsch?

Danke!!

Drno
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 236
Registriert: 10. Feb 2005 20:16

Beitrag von Drno » 12. Nov 2007 19:49

Ne, also die I_y_ij sind schon die I_m-Werte, also floats.
Vielleicht stimmt ja bei euch was nicht mit den Indizes?

Zum Paper: Bei Gleichungen ( 8 ) und ( 10 ) haben wir da jeweils gegenseitig eingesetzt.
Programming today is a race between software engineers striving to build bigger and better idiot proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.

Benutzeravatar
Blubb
Windoof-User
Windoof-User
Beiträge: 28
Registriert: 18. Feb 2006 15:54

Beitrag von Blubb » 12. Nov 2007 21:09

Ok, dann haben wir das also richtig verstanden, (8) und (10) benutzen wir ganz genauso. Der Fehler scheint also irgendwo bei der Verarbeitung unserer Response Curve zu liegen.

Wie initialisiert ihr eure Intervallgrenzen I_0 bis I_254? Wir haben eine Schrittweite von 1/129 genommen womit man bei I_128 genau 1.0 hätte. Und dann halt weiter mit der gleichen Schrittweite bis I_254.

Und in Formel (8) habt ihr dann für I_y_ij die I_m verwendet? D.h. also wenn y_ij (der Pixel j in Bild i) den Wert 144 hätte, dann hättet ihr einfach den Wert von I_145 genommen?

Ich versuche gerad den Fehler einzugrenzen, ganz falsch scheine ich es nicht verstanden zu haben. ;)

Drno
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 236
Registriert: 10. Feb 2005 20:16

Beitrag von Drno » 12. Nov 2007 21:23

Ja, initial haben wir bei I auch einfach linear durchgelegt, und kamen da "rechts" so bei ~2 an.
Zu y_ij = 144, da würden wir I_144 nehmen.
Programming today is a race between software engineers striving to build bigger and better idiot proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.

Benutzeravatar
Blubb
Windoof-User
Windoof-User
Beiträge: 28
Registriert: 18. Feb 2006 15:54

Beitrag von Blubb » 12. Nov 2007 21:59

Und bei 255? Denn wir haben ja als höchstes I nur I_254.

Drno
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 236
Registriert: 10. Feb 2005 20:16

Beitrag von Drno » 12. Nov 2007 22:58

Bei 255 fällt ja der Einfluss auf Grund des Gewichts ja weg
w_ij(255) = 0; Wir haben in den Arrays 256 Einträge
Programming today is a race between software engineers striving to build bigger and better idiot proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.

Benutzeravatar
Blubb
Windoof-User
Windoof-User
Beiträge: 28
Registriert: 18. Feb 2006 15:54

Beitrag von Blubb » 12. Nov 2007 23:35

Hm, eigentlich haben wir das so eingebaut und unser ursprünglicher Fehler am Rand dürfte aufgrund der Gewichtung nicht wirklich eine Rolle gespielt haben.

Ich glaube allmählich dass unser Problem nicht an der Response Curve und der Berechnung der hdr Bilder liegt, sondern woanders.

Nur wo *grummel* Wir haben jetzt so ziemlich jede Formel des Papers einmal neu implementiert, aber das Ergebnis ist identisch. Scheint wohl woanders zu liegen.

ykaerflila
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 144
Registriert: 9. Mai 2006 22:01
Wohnort: Mainz
Kontaktdaten:

Beitrag von ykaerflila » 13. Nov 2007 00:21

blubb, versuche doch einmal die achsen zu vertauschen und eine geeignete skalierung der achsen zu wählen. drno's kurven kannst du so nicht mit eurer vergleichen...
icq# 117752728
email: 7pinacoladas@gmx.net

Benutzeravatar
Blubb
Windoof-User
Windoof-User
Beiträge: 28
Registriert: 18. Feb 2006 15:54

Beitrag von Blubb » 13. Nov 2007 10:58

Vielen Dank für den Hinweis, ich habe (siehe anderer Thread) mal andere input files genommen, die ich aus dem Netz habe, und habe vernünftige Responsecurves bekommen, mit ähnlich geringen Schwankungen. Unser Problem scheint wirklich nicht die Curve zu sein.

ykaerflila
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 144
Registriert: 9. Mai 2006 22:01
Wohnort: Mainz
Kontaktdaten:

Beitrag von ykaerflila » 13. Nov 2007 22:27

ach ja - mal eine ganz blöde frage: auf welcher plattform (os, compiler) bekommt ihr eure ergebnisse? ich habe hier krasse unterschiede an einigen stellen festgestellt, wenn ich zB anstelle von floats doubles benutze oder umgekehrt.
icq# 117752728
email: 7pinacoladas@gmx.net

Drno
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 236
Registriert: 10. Feb 2005 20:16

Beitrag von Drno » 13. Nov 2007 22:31

Bei uns Windows und Visual Studio 2005,
Teilweise reicht anscheinend der auch float nicht. Also bei manchen Inputdaten gibt es bei uns #IND als Wert bei sehr kleinen Zahlen.
Naja, der ganzen Sache mal genauer auf den Grund gehen.
Programming today is a race between software engineers striving to build bigger and better idiot proof programs, and the Universe trying to produce bigger and better idiots. So far, the Universe is winning.

Antworten

Zurück zu „Archiv“