Ein neues Thema erstellen Auf das Thema antworten  [ 39 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3, 4

Vorheriges Thema | Nächstes Thema 

Autor Nachricht
 Betreff des Beitrags: Re: Übung 11
BeitragVerfasst: 7. Juli 2008, 17:48 
1.Semester

Registriert: 6. Mai 2008, 19:21
Beiträge: 17
@Homer
bitte ich brauche Arbeitsschritte der Aufgabe 1 und Aufgabe 2 ?


Nach oben
 Offline     Profil  
 
 Betreff des Beitrags: Re: Übung 11
BeitragVerfasst: 7. Juli 2008, 18:08 
Abgeschlossenes Grundstudium
Benutzeravatar

Registriert: 28. April 2008, 21:05
Beiträge: 120
Hi Fadi,

ich selber habe das Übungsblatt in den Wind geschossen...um es zu lösen musst du dich zwangsläufig durch die paper quälen:

[urle0t]http://robotics.mi.fu-berlin.de/pmwiki/uploads/Courses/calibrating[/urle0t]

[urle0t]http://robocup.mi.fu-berlin.de/buch/calibration.pdf[/urle0t]

_________________
[idn9]Ich kenne zwar die Lösung nicht, aber ich bewundere das Problem![/idn9]


Nach oben
 Offline     Profil  
 
 Betreff des Beitrags: Re: Übung 11
BeitragVerfasst: 7. Juli 2008, 20:58 
1.Semester

Registriert: 6. Mai 2008, 19:21
Beiträge: 17
@Homer
Danke für die Links !!!!
nach dem Tutorium hatte ich eine andere Vorstellung deshalb sieht schwer bei mir aus!!
Hast du keine Idee?
irgendwas!!!


Nach oben
 Offline     Profil  
 
 Betreff des Beitrags: Re: Übung 11
BeitragVerfasst: 7. Juli 2008, 22:35 
2.Semester

Registriert: 2. Mai 2008, 11:58
Beiträge: 48
hm, ich komm einfach nicht weiter, hab wohl irgendwie ein brett vorm kopf. jetzt hab ich das bild zentriert, und das resultat ist, dass gar nichts mehr entzerrt wird (s.U.). Ich beschreibe mal mein vorgehen, vielleicht hilft es fadi2200 oder mir selbst ;)

Vorbereitungen:
1. ich messe die "ringbreiten" r_1,r_2,...,r_n auf dem Beispielbild und erstelle ein array r, wobei r[i] = sum(r_k), k=1...i ist. dann erstelle ich eine Matrix M mit 3 Spalten und n Zeilen, wobei Zeile i = [i*r_1^3, i*r_1^2, i*r_1] entspricht (hier wird die annahme gemacht, dass der abstand des "mittlersten" Kreises unverzerrt ist). Aufgrund der Gleichung M*[a;b;c] = r' (r' = r-transponiert) erhaelt man nun [a;b;c] = pseudoinverse(M)*r'

Entzerrung:
-Ich durchlaufe das verzerrte Bild b, also for x=1:width {... for y=1:height {...}}
-berechne dabei x'=x-(width+1)/2; y'=y-(height+1)/2; r=sqrt(x'^2 + y'^2); (x',y' sind jetzt die zentrierten koordinaten).
-skalierungsfaktor berechnen: s = r/(( a*(r^3)+b*(r^2)+c*r));
-neue koordinaten berechnen, heisst:
x_neu = x'*s; y_neu = y'*s;
-im "entzerrten" bild c die Werte setzen:
c(x_neu,y_neu) = b(x,y) (voher müssen x_neu,y_neu noch um einen konstanten additiven
faktor wieder in einen positiven wertebereich verschoben werden.
naja, das resultat sieht man unten...[attachment=0tkh] a2_neu.jpg
a2_neu.jpg [ 16.54 KiB | 10555-mal betrachtet ]

[/attachmenttkh]


Nach oben
 Offline     Profil  
 
 Betreff des Beitrags: Re: Übung 11
BeitragVerfasst: 7. Juli 2008, 23:31 
2.Semester

Registriert: 2. Mai 2008, 11:58
Beiträge: 48
hm, ich glaube ich hab die ganze zeit falschrum gedacht.
hier die korrekturen:
man will ja das verhaeltnis des radius des "korrigierten" pixels zum eigentlichen pixel, deshalb muss es heissen: s = (( a*(r^3)+b*(r^2)+c*r))/r;
dann holt man aus dem "verzerrten" bild den pixel an der korrigierten position, und setzt ihn an die aktuelle x,y-position des "entzerrten" bildes.
also c(y,x) = b(y_neu,x_neu);
die parameter sind wohl noch nicht ganz perfekt, aber vom prinzip her scheint es zu funktionieren. das resultat:[attachment=0hi6] a2_better.jpg
a2_better.jpg [ 11.83 KiB | 10538-mal betrachtet ]

[/attachmenthi6]


Nach oben
 Offline     Profil  
 
 Betreff des Beitrags: Re: Übung 11
BeitragVerfasst: 8. Juli 2008, 00:10 
1.Semester

Registriert: 1. Juli 2008, 16:11
Beiträge: 8
@torsten

also der Algorithmus fuer die Entzerrung sieht meiner Meinung nach OK aus, obwohl ich das mit dem Streckungsfaktor s etwas umstaendlich finde. Allerdings verstehe ich ueberhaupt nicht, was dein Bild aussagen soll. Gib doch einfach mal das entzerrte Bild aus und schaue dir an, ob die Kreise dann den gleichen Abstand haben.

Also ich habe jeweils die Abstaende der Kreise zu Mittelpunkt (Schwarze und weisse Kanten der Ringe im verzerrten Bild) ueber ein vielfaches des ersten Kreisabstandes aufgetragen. Das ganze habe ich dann mit Gnuplot als Polynom 3.Grades ohne Offset gefittet, wobei das bestimmt auch mit excel etc. geht:

[img4so]http://physik.fu-berlin.de/~krieger/distortion-fit.jpg[/img4so]

Somit bekomme ich f(r). Kann man natuerlich auch so wie Torsten machen. Danach habe ich ein neues, leeres Bild (bzw Matrix) erstellt, welche die selbe Groesse hat wie das verzerrte. Danach bin ich alle Pixel des leeren Bildes einzeln durchgegangen. Dabei habe ich jeweils den Vektor vom Mittelpunkt des Bildes zum aktuellen Pixel berechnet und normiert (d.h. Vektor = Vektor/r = n), wobei r gleich Abstand Mitte-Pixel ist. Danach nehme ich den normierten Vektor und multipliziere ihn wieder mit f(r) (Vektor_neu = n*f(r)). Vom Mittelpunkt des Verzerrten Bildes aus zeigt der Vektor nun auf einen Pixel. Die Farbe dieses Pixels weise ich dem aktuellen Pixel in meinem leeren Bild zu ....... das mach ich fuer alle Pixel im neuen Bild, und bekomme das entzerrte Bild (rechts das entzerrte Bild):

[img4so]http://physik.fu-berlin.de/~krieger/radial_distortion_grey.bmp[/img4so] [img4so]http://physik.fu-berlin.de/~krieger/undistorted.bmp[/img4so]

Ja, ich weiss, dass die Beschreibung nicht ideal ist, aber ich wollte hier keinen Pseudocode posten....

MfG,
keV


Nach oben
 Offline     Profil  
 
 Betreff des Beitrags: Re: Übung 11
BeitragVerfasst: 8. Juli 2008, 00:14 
1.Semester

Registriert: 1. Juli 2008, 16:11
Beiträge: 8
@ torsten nochmal

zwischen dem Schreiben und dem Einstellen meines Betrages hast du wohl das neue Bild reingestellt ... , sieht auf jeden Fall richtig aus, wobei mir die Ringe ganz aussen noch etwas schmaler vorkommen, kann mich aber auch taeuschen


Nach oben
 Offline     Profil  
 
 Betreff des Beitrags: Re: Übung 11
BeitragVerfasst: 8. Juli 2008, 00:29 
2.Semester

Registriert: 2. Mai 2008, 11:58
Beiträge: 48
[quote="keV"fv6]@torsten
Allerdings verstehe ich ueberhaupt nicht, was dein Bild aussagen soll. Gib doch einfach mal das entzerrte Bild aus und schaue dir an, ob die Kreise dann den gleichen Abstand haben.
[/quotefv6]
Hallo keV,
das Bild in meinem Beitrag vor deinem hier zitierten Beitrag war das Bild, was meine Implementierung zu diesem Zeitpunkt als "entzerrtes Bild" produziert hat, deshalb war ich ja auch so verzweifelt ;)
Auf jedenfall vielen Dank fuer deine Antworten und sehr schicker Ansatz mit dem Polynom-fitten.
Grüsse, Torsten


Nach oben
 Offline     Profil  
 
 Betreff des Beitrags: Re: Übung 11
BeitragVerfasst: 8. Juli 2008, 09:38 
1.Semester

Registriert: 1. Juli 2008, 16:11
Beiträge: 8
Naja, sicher ist die direkte mathematische Loesung des Polynoms eleganter. Aber beim Fit hat man halt den Vorteil dass man sofort sieht, ob die Kurve ungefaer passt und ob alle Werte draufliegen.


Nach oben
 Offline     Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 39 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3, 4


Wer ist online?

Mitglieder in diesem Forum: Bing [Bot] und 2 Gäste


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach:
Gehe zu:  
cron
Powered by phpBB © 2007 phpBB Group


Picksel Media Marco Block © 2006-2009 – ImpressumKontakt
Gestaltung und Umsetzung Tobias Losch, www.picksel-media.de