Helmert Transformation < Matlab < Mathe-Software < Mathe < Vorhilfe
|
Aufgabe | [Externes Bild http://www.bilder-space.de/show.php?file=26.11NeIolLmGgr0cSq5.jpg]
[Externes Bild http://www.bilder-space.de/show.php?file=26.11gEXgX64wYTNkmSq.jpg] |
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
Also habe ein Problem bei Schritt 3.
Hier ist mal der Code:
1: |
| 2: | fid = fopen('Identpunkt.txt');
| 3: | C = textscan(fid, '%s%f32%f32%f32%f32');
| 4: | fclose(fid);
| 5: | %1. Schritt: Übergang auf den schwerpunkt der identischen Punkte (numerisch
| 6: | %günstig)
| 7: | Ys = mean(C{4})
| 8: | Xs = mean(C{5})
| 9: | etas = mean(C{2})
| 10: | xis = mean(C{3})
| 11: |
| 12: | delta_Yi = C{4} - Ys
| 13: | delta_Xi = C{5} - Xs
| 14: | delta_etai = C{2} - etas
| 15: | delta_xii = C{3} - xis
| 16: | sum(delta_Yi) == sum(delta_Xi) == sum(delta_etai) == sum(delta_xii) == 0
| 17: |
| 18: |
| 19: | %2. Schritt: Berechnung der Trafoparameter aus den identischen Punkten
| 20: |
| 21: | a = (sum(delta_xii.*delta_Xi) + sum(delta_etai.*delta_Yi)) / (sum((delta_xii).^2 + (delta_etai).^2))
| 22: | o = (sum(delta_xii.*delta_Yi) + sum(delta_etai.*delta_Xi)) / (sum((delta_xii).^2 + (delta_etai).^2))
| 23: |
| 24: | q = sqrt(o^2 + a^2)
| 25: |
| 26: | Y0 = Ys - o * xis - a * etas
| 27: | X0 = Xs - a * xis + o * etas
| 28: |
| 29: |
| 30: | %3. Schritt: Transformation der Neupunkte
| 31: |
| 32: | fid = fopen('Neupunkt.txt');
| 33: | D = textscan(fid, '%s%f32%f32');
| 34: | fclose(fid);
| 35: |
| 36: |
| 37: | l = length(D{2});
| 38: | for i=1:l
| 39: | n = [Y0;X0] + ([a o;-o a]*[D{2}(i);D{3}(i)])
| 40: | end
|
Also wie gesagt im dritten Schritt hab ich das Problem. Die Formel findet ihr am 2. Bild. Laut Formel müssten dann die jeweiligen Y und X Werte in einem Vektor ausgegeben werden. Und diese Werte muss ich dann wieder in die Datei "Neupunkt.txt" schreiben.
Habe es hier mit einer for-Schleife gelöst. Das einzige Problem ist, dass die errechneten Werte dann immer wieder als "n" gespeichert werden. Kann mir vll. da jemand helfen. Danke schonmal im vorraus
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 16:20 Sa 13.12.2008 | Autor: | matux |
$MATUXTEXT(ueberfaellige_frage)
|
|
|
|