WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Schräge Schnittebene in einer Punktwolke

 

BillyHill
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 08.07.14
Wohnort: ---
Version: R2013b
     Beitrag Verfasst am: 29.07.2014, 12:47     Titel: Schräge Schnittebene in einer Punktwolke
  Antworten mit Zitat      
Hallo Zusammen!

Ich stehe vor folgendem Problem!

Ich besitze eine Punktwolke mit x,y,z Koordinaten. Diese Punktwolke entspricht einer Hülle eines Körpers. In diesem Fall ein 3D Scan eines Menschen.

Ich möchte nun den Körper in mehrere Segmente unterteilen. Bei waagerechten und senkrechten Schnitten habe ich damit kein Problem.
Bei den schrägen Schnitten hapert es.

Wie kann ich Beispielsweise an der Schulter einen Schnitt durchführen, wenn ich 2 Punkte besitze, durch die der Schnitt durchgehen soll?
Und wie bekomme ich die Öffnung wieder geschlossen?

Ich hoffe ich hab mein Problem genau genug dargestellt.
Vielen Dank im Voraus
Private Nachricht senden Benutzer-Profile anzeigen


BillyHill
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 08.07.14
Wohnort: ---
Version: R2013b
     Beitrag Verfasst am: 31.07.2014, 13:13     Titel:
  Antworten mit Zitat      
Ok, neuer Ansatz.

Im Anhang wollte ich die Datei hochladen, allerdings ist der Dateityp .asc hier verboten hochzuladen. Ich werde dies nachholen, sobalt ich eine Möglichkeit gefunden habe die Tabelle in .txt oder .xlsx einzufügen.
Leider funktioniert einfaches copy past nicht.

Die ersten drei Spalten beinhalten die x,y,z Koordinaten.
Dies hab ich erstmal so gelöst.
Code:

%Einlesen der Daten
rohmatrix = importdata ('test.asc');

% Zur Vereinfachung erstmal nur jeden 10. Punkt und die 4 Spalte wird eliminiert
    matrix = rohmatrix ([1:10:end],:,:);
    xwerte = matrix (:,1);
    ywerte = matrix (:,2);
    zwerte = matrix (:,3);
    matrix = [xwerte ywerte zwerte];

%Dann folgen mehrere Funktionen, die den Körper in einzelne Segmente %teilen sollen. Hier ein Beispiel:

function [fuss_links, fuss_rechts] = fuesse (matrix)

%Die Position des Knöchels links und rechts ist mir durch Marker bekannt
knoechel_links = [486.24 -781.5 1963];
knoechel_rechts = [483.51 -422.9 1963];

laengematrix = length (matrix);
fuss_links = [];
for i = 1 : laengematrix
   
        if matrix(i,3)>=knöchel_l(1,3) & matrix(i,2) <= -600
            fuss_links = [fuss_links; matrix(i,:)];
        end
end    
 


Dies ist ein Beispiel der Segmentierung mit dem ich kein Problem habe.
Einmal waagerecht in der Z-Ebene und einmal senkrecht in der Y-Ebene geschnitten und ich hab meinen linken Fuss.



Manche Segmente benötigen allerdings schräge Schnitte :
-Schulter
-Hüfte,...
Auch dort sind mir die Punkte durch die der Schnitt gehen soll bekannt.
Für die Hüfte ist es ein Dreieck
P1: [621.61 -718.50 984.5]
P2: [606.89 -460.71 991.70]
P3: [610 -582 1267]

Und hier komme ich auf das Problem zurück.
Wie kann ich diese schrägen Schnitte bewerkstelligen?
Also eine neue Matrix_huefte erstellen, in der nur Punkte innerhalb des Dreiecks vorkommen.
Private Nachricht senden Benutzer-Profile anzeigen
 
PinkySan
Forum-Anfänger

Forum-Anfänger


Beiträge: 26
Anmeldedatum: 28.05.13
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.07.2014, 14:01     Titel:
  Antworten mit Zitat      
Hier gibt es ein paar recht gute Beispiele zu Ebenen in Matlab.

http://www.math.umd.edu/~jmr/241/lines_planes.html

Ich hoffe du konntest dort etwas finden, was dir weiterhilft Rolling Eyes
Private Nachricht senden Benutzer-Profile anzeigen
 
Nras
Forum-Meister

Forum-Meister


Beiträge: 608
Anmeldedatum: 21.02.12
Wohnort: ---
Version: 7.12.0.635 (R2011a)
     Beitrag Verfasst am: 01.08.2014, 11:24     Titel:
  Antworten mit Zitat      
Hallo,

kurzer Hinweis: einfach die hochzuladende Datei in ein Archiv (zum Beispiel *.zip) packen und dann hochladen.

Viele Grüße,
Nras.
Private Nachricht senden Benutzer-Profile anzeigen
 
BillyHill
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 08.07.14
Wohnort: ---
Version: R2013b
     Beitrag Verfasst am: 01.08.2014, 12:25     Titel:
  Antworten mit Zitat      
Hola,

Der Link zu den Ebenen hat mir die richtige Richtung gewiesen.
Ich dachte ich könnte alleine mit Vektor - und Matrizenrechnung zum Erfolg kommen.

Neuer Ansatz:
Ich mache ein 2D Problem daraus. Betrachte also nur die x,z-Achse.
Über 2 Punkte beschreibe ich eine Gerade.
Über die Funktion der Geraden wiederum kann ich heraus finden welcher Punkt oberhalb oder unterhalb der Geraden liegt und diese dann in seperate Matrizen speichern.


Den Versuch die Datei zuerst zu packen und dann hochzuladen hatte ich auch schon. Vllt liegt es an dem Packprogramm, das hier auf dem Unirechner ist.
Ich versuche es Daheim nochmal mit einem anderen Programm.

Vielen Dank für die Ansätze
Sollte dies zum Erfolg führen, werde ich dies mitteilen.
Wenn nicht,...komm ich wieder und heul weiter
Private Nachricht senden Benutzer-Profile anzeigen
 
BillyHill
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 08.07.14
Wohnort: ---
Version: R2013b
     Beitrag Verfasst am: 01.08.2014, 16:54     Titel:
  Antworten mit Zitat      
Top!

Hat funktioniert.
- mit 2 Punkten die Geradengleichung aufgestellt
- alle Werte durch die Gleichung gejagt und dann separiert, wo sich die Punkte befinden(oberhalb bzw. unterhalb)

Jetzt werde ich das ganze umschreiben und eine Ebenengleichung zum schneiden benutzen. Diese Ebene kann ich dann dierekt nutzen, um die Öffnungen zu schließen.

Vielen Dank nochmal für die Denkanstösse
Private Nachricht senden Benutzer-Profile anzeigen
 
Nras
Forum-Meister

Forum-Meister


Beiträge: 608
Anmeldedatum: 21.02.12
Wohnort: ---
Version: 7.12.0.635 (R2011a)
     Beitrag Verfasst am: 01.08.2014, 19:07     Titel:
  Antworten mit Zitat      
BillyHill hat Folgendes geschrieben:

Den Versuch die Datei zuerst zu packen und dann hochzuladen hatte ich auch schon. Vllt liegt es an dem Packprogramm, das hier auf dem Unirechner ist.
Ich versuche es Daheim nochmal mit einem anderen Programm.

Hallo, das klingt komisch. Dann wurde entweder im Forum etwas geändert oder du hast die zulässige Dateigröße überschritten.
Aber in jedem Falle schön, dass du dein Problem gelöst hast Smile.
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.