|
|
MRT Auswertung und 3D Darstellung |
|
tittelchen |
Forum-Anfänger
|
|
Beiträge: 12
|
|
|
|
Anmeldedatum: 19.06.15
|
|
|
|
Wohnort: Leipzig
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 03.09.2015, 12:45
Titel: MRT Auswertung und 3D Darstellung
|
|
|
|
|
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?? )
|
|
|
|
|
marvin.be |
Forum-Fortgeschrittener
|
|
Beiträge: 54
|
|
|
|
Anmeldedatum: 28.08.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2013b
|
|
|
|
|
|
Verfasst am: 03.09.2015, 14:34
Titel:
|
|
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
|
|
|
tittelchen |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 12
|
|
|
|
Anmeldedatum: 19.06.15
|
|
|
|
Wohnort: Leipzig
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 08.09.2015, 14:34
Titel:
|
|
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
|
|
|
marvin.be |
Forum-Fortgeschrittener
|
|
Beiträge: 54
|
|
|
|
Anmeldedatum: 28.08.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2013b
|
|
|
|
|
|
Verfasst am: 08.09.2015, 14:45
Titel:
|
|
Hi,
also wenn es dir reicht das im MatLab Command Window der Text steht, dann geht folgendes:
Oder wie ich finde, etwas schöner so:
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
|
|
|
tittelchen |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 12
|
|
|
|
Anmeldedatum: 19.06.15
|
|
|
|
Wohnort: Leipzig
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 08.09.2015, 15:07
Titel:
|
|
Danke, das ist schonmal ein guter Anfang.
Allerding wäre es mir lieber, wenn sich ein separates Fenster öffnen würde.
Gibt es da Möglichkeiten?
Habe schonmal geschaut, aber ich finde die richtigen Codes nicht ^^
|
|
|
marvin.be |
Forum-Fortgeschrittener
|
|
Beiträge: 54
|
|
|
|
Anmeldedatum: 28.08.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2013b
|
|
|
|
|
|
Verfasst am: 08.09.2015, 15:27
Titel:
|
|
Ich glaube Message Dialog Box ist genau das was du suchst
Den Text dann ähnlich wie oben in meinem Beispiel angegeben nach msgbox einfügen.
|
|
|
tittelchen |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 12
|
|
|
|
Anmeldedatum: 19.06.15
|
|
|
|
Wohnort: Leipzig
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 09.09.2015, 10:43
Titel:
|
|
Danke 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.
Danke trotzdem
Beschreibung: |
|
Download |
Dateiname: |
Unbenannt.png |
Dateigröße: |
3.47 KB |
Heruntergeladen: |
523 mal |
|
|
|
tittelchen |
Themenstarter
Forum-Anfänger
|
|
Beiträge: 12
|
|
|
|
Anmeldedatum: 19.06.15
|
|
|
|
Wohnort: Leipzig
|
|
|
|
Version: ---
|
|
|
|
|
|
Verfasst am: 09.09.2015, 12:11
Titel:
|
|
Habe es rausgefunden
|
|
|
marvin.be |
Forum-Fortgeschrittener
|
|
Beiträge: 54
|
|
|
|
Anmeldedatum: 28.08.15
|
|
|
|
Wohnort: ---
|
|
|
|
Version: R2013b
|
|
|
|
|
|
Verfasst am: 09.09.2015, 12:17
Titel:
|
|
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:
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
|
|
|
|
|
Einstellungen und Berechtigungen
|
|
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
| 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.
|
|