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

MRT Auswertung und 3D Darstellung

 

tittelchen
Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 19.06.15
Wohnort: Leipzig
Version: ---
     Beitrag Verfasst am: 03.09.2015, 12:45     Titel: MRT Auswertung und 3D Darstellung
  Antworten mit Zitat      
Hallo Leute,

Ich schreibe gerade an meiner Bachelorarbeit. Hier habe ich MRT-Datensätze von Gehirnen, in denen ein Infarkt zu erkennen ist.
Hier mal ein paar Daten:
Der Stack besteht aus 25 Schnittbildern.
Der Infarkt ist nicht auf jedem Schnittbild zu sehen, sondern nur auf ca. 10 Schnittbildern, die relativ sich relativ mittig im Stack befinden.
Nun meine Aufgaben: Ich soll schließlich mit einem Programm das Volumen des Infarktes bestimmen und den Infarkt dreidimensional ausgeben lassen.
Meine bisherige Vorgehensweise:
Ich habe die Dicomdaten in Matlab einlesen lassen. Dazu habe ich zwei verschiedene Ansätze:
Einmal über den Befehl Dicomread.
Das andere so:

fileFolder = fullfile (pwd, 'Bara2');
files = dir(fullfile(fileFolder, '*.dcm'));
fileNames = {files.name};
Erste Frage: Wie kann ich die Datensätze so anzeigen lassen, dass man ein Fenster offen hat, und sich durch den Stack "durchscrollen" kann??

Dann so ein paar Bildbearbeitungssachen. Filter, segmentieren mit dem Befehl imageSegmenter, der mir das binäre Bild "mask" zurückgibt.

Die Bearbeitung der Daten soll so erfolgen, dass ich einen Befehl (Z.b. die segmentierung) an einem Bild im Stack anwende und dieser Befehl automatisch an alle anderen im Stack befindlichen Bilder angewendet wird. Geht das? Bzw. wie geht das?

Zudem wollte ich am Anfang des Programmes ein Polygon um den Infarkt zeichen (manuell). Den Befehl dazu habe ich gefunden: impoly
Auch hier möchte ich das Polygon in einem Bild einzeichnen, diesen Bereich ausschneiden und es soll automatisch auf alle 25 Bilder angewendet werden. Der ausgeschnittene Bereich soll dann als neuer "Stack" gespeichert und angezeigt werden. Aber Wie??

Und nun noch die wichtigste Frage:
Wie ist die korrekte Vorgehensweise, wenn ich die segmentierten Daten als 3D Darstellung ausgeben lassen möchte? Was muss ich beachten, welche Daten kann ich 3D darstellen lassen. Also: Wie gehe ich hierbei vor?

Vielen Vielen Dank für Eure Hilfe!
Ich bin Neueinsteiger in der Programmierung (Warum habe ich dieses Bachelorthema überhaupt gewählt?? Confused )
Razz Razz
Private Nachricht senden Benutzer-Profile anzeigen


marvin.be
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 54
Anmeldedatum: 28.08.15
Wohnort: ---
Version: R2013b
     Beitrag Verfasst am: 03.09.2015, 14:34     Titel:
  Antworten mit Zitat      
Hi tittelchen,

rein prinzipiell würde ich wie folgt vorgehen:

1. Einen Datensatz á 25 Einzelbilder einlesen lassen als cell
2. Mit for-Schleife jedes einzelne Bild bearbeiten lassen, Polygone einzeichnen lassen etc.
3. Bilder als 3D Plot zusammensetzen und anzeigen lassen.

Weiterhin riecht das alles seeeehr nach GUI (graphical unit interface)

Unterm Strich halte ich dieses Thema für einen Programmier-Anfänger für sehr gewagt, aber nicht unmöglich.

Gruß,
Marvin
Private Nachricht senden Benutzer-Profile anzeigen
 
tittelchen
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 19.06.15
Wohnort: Leipzig
Version: ---
     Beitrag Verfasst am: 08.09.2015, 14:34     Titel:
  Antworten mit Zitat      
Vielen Dank,
Bisher klappt alles.

Eine Frage habe ich noch:

Ich habe eine Variable "volume". Dieser Variable ist ein bestimmter Wert zugeordnet und im Workspace gespeichert.

Würde jetzt gerne eine Art Fenster öffnen lassen, in dem der Text steht:

"Volumen in mm³ =" und dahinter der Wert des Volumens.

Welche Befehle kann ich dafür nutzen?

Sollte ich vllt n neues Thema erstellen, da es vllt nicht so gut hier rein passt?


Danke und liebe Grüße Smile
Private Nachricht senden Benutzer-Profile anzeigen
 
marvin.be
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 54
Anmeldedatum: 28.08.15
Wohnort: ---
Version: R2013b
     Beitrag Verfasst am: 08.09.2015, 14:45     Titel:
  Antworten mit Zitat      
Hi,

also wenn es dir reicht das im MatLab Command Window der Text steht, dann geht folgendes:

Code:
volume=200;
A='Volumen in mm³:';
B=[A,num2str(volume)];disp(B)


Oder wie ich finde, etwas schöner so:

Code:
volume=200;
A='Volumen: ';
B='mm³';
C=[A,num2str(volume),B];disp(C)


Aber extra ein Fenster aufpoppen zu lassen ist mir neu, geht aber bestimmt. Einfacher wäre es, wenn du z.B. bereits einen Plot hast. Dann könnte man dort mit den annotations arbeiten.

Gruß,
Marvin
Private Nachricht senden Benutzer-Profile anzeigen
 
tittelchen
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 19.06.15
Wohnort: Leipzig
Version: ---
     Beitrag Verfasst am: 08.09.2015, 15:07     Titel:
  Antworten mit Zitat      
Danke, das ist schonmal ein guter Anfang.

Allerding wäre es mir lieber, wenn sich ein separates Fenster öffnen würde. Smile
Gibt es da Möglichkeiten?
Habe schonmal geschaut, aber ich finde die richtigen Codes nicht ^^
Private Nachricht senden Benutzer-Profile anzeigen
 
marvin.be
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 54
Anmeldedatum: 28.08.15
Wohnort: ---
Version: R2013b
     Beitrag Verfasst am: 08.09.2015, 15:27     Titel:
  Antworten mit Zitat      
Ich glaube Message Dialog Box ist genau das was du suchst Wink

Den Text dann ähnlich wie oben in meinem Beispiel angegeben nach msgbox einfügen.
Private Nachricht senden Benutzer-Profile anzeigen
 
tittelchen
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 19.06.15
Wohnort: Leipzig
Version: ---
     Beitrag Verfasst am: 09.09.2015, 10:43     Titel:
  Antworten mit Zitat      
Danke Smile Genau sowas suche ich.

Den Text einzufügen ist ja nun kein Problem mehr. Mir fehlt noch der Syntax, dass der Wert für "Volumen", der im Workspace gespeichert ist, automatisch mit ausgegeben wird.

h = msgbox('Volumen in mm³ = ', Volume);

Ich habe mal ein Bild angehangen, wie es aussehen soll.
Der Wert für Volumen ändert sich je nach Daten, die ich hochlade. Entsprechend muss der Wert automatisch in diesem Fenster erscheinen. Wie gesagt, mir fehlt nur der Syntax, oder ich habe n groben Denkfehler. Eigentlich ist das ja nichts schwieriges. Smile

Danke trotzdem

Unbenannt.png
 Beschreibung:

Download
 Dateiname:  Unbenannt.png
 Dateigröße:  3.47 KB
 Heruntergeladen:  523 mal
Private Nachricht senden Benutzer-Profile anzeigen
 
tittelchen
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 12
Anmeldedatum: 19.06.15
Wohnort: Leipzig
Version: ---
     Beitrag Verfasst am: 09.09.2015, 12:11     Titel:
  Antworten mit Zitat      
Habe es rausgefunden Very Happy
Private Nachricht senden Benutzer-Profile anzeigen
 
marvin.be
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 54
Anmeldedatum: 28.08.15
Wohnort: ---
Version: R2013b
     Beitrag Verfasst am: 09.09.2015, 12:17     Titel:
  Antworten mit Zitat      
Kommt drauf an was der Parameter 'Volumen' genau ist, aber die Funktion sprintf wird dir da weiterhelfen. Unterm Strich wird dein Text dann so aussehen:

Code:

text = sprintf('Volumen in mm³ = %g', Volumen)
 


Könnte sein das du das %g gegen ein %d oder ähnlich austauschen musst, da dies die Darstellungsform beeinflusst. Beispiele dazu findest du im Link oben oder du probierst einfach selber mal.

EDIT:
Ok, wunderbar Very Happy
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.