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

BUG? Einlesen von Dicom files in try-catch-end Block

 

Sco
Forum-Meister

Forum-Meister


Beiträge: 699
Anmeldedatum: 15.08.10
Wohnort: Dundee
Version: 2008a, 2010a
     Beitrag Verfasst am: 10.02.2012, 21:59     Titel: BUG? Einlesen von Dicom files in try-catch-end Block
  Antworten mit Zitat      
Hallo,

ich weiss nicht ob es sich wirklich um einen Bug handelt, jedenfalls habe ich ein komisches (fehlerhaftes) Verhalten beobachtet. Folgender Code:
Code:

for n = 1:numel(file) % Schleife ueber alle Files
    try % wenn kein DICOM file--> zum naechsten file (isdicom waere hier besser, aber es geht ja um den Bug Smile )

        dcm_files(n).header = dicominfo([sPath filesep file(n).name]); % lade Header des Dicom Files
        dcm_files(n).img = dicomread([sPath filesep file(n).name]); % lade Bild des Dicom Files

        if n > 1 && ~isequal(dcm_files(n).header.SeriesInstanceUID, dcm_files(n-1).header.SeriesInstanceUID)
            uiwait(msgbox(sprintf('%s','DICOM files from more than one series have been detected in the selected folder.'),'Error','error'));
           return;
        end

    catch %#ok<CTCH>
    end
end
 

Anschliessend sortiere ich die Bilder in der richtigen Reihenfolge und erstelle eine 3D Matrix (Volumendatensatz). Der Code wie oben gezeigt funktioniert perfekt. Wenn ich mir die einzelnen Schichten meines Volumen mit einem Viewer in Matlab anschaue, ist es wie gewuenscht.

Aendere ich den Code aber nur ein klein wenig, naemlich folgendermassen:
Code:

 for n = 1:numel(file) % Schleife ueber alle Files
    try % wenn kein DICOM file--> zum naechsten file (isdicom waere hier besser, aber es geht ja um den Bug Smile )
       
        dcm_files(n).header = dicominfo([sPath filesep file(n).name]);
       
        if n > 1 && ~isequal(dcm_files(n).header.SeriesInstanceUID, dcm_files(n-1).header.SeriesInstanceUID)
            uiwait(msgbox(sprintf('%s','DICOM files from more than one series have been detected in the selected folder.'),'Error','error'));
            return;
        end
       
        dcm_files(n).img = dicomread([sPath filesep file(n).name]); % <---- nur diese Zeile wurde nach unten verschoben, was eig. nichts veraendern sollte!!!
       
    catch %#ok<CTCH>
    end
end
 

dann sind die Bilder in manchen Schichten wie verschoben. Prinzipiell habe ich an dem Code ja nix veraendert und wuerde genau dasselbe Ergebnis erwarten. Es liegt auch nicht am Viewer, da einzelne Schichten, z.B. mit imagesc oder imtool, das gleiche Ergebnis bringen. Natuerlich werden die Bilder auch nicht noch irgendwie nachtraeglich bearbeitet!

Ich habe noch ein ein Word Dokument mit den Resultaten fuer Code 1 und 2 zur Verdeutlichung angehaengt.

Also ein Bug?

MFG

Sco

Bild Code1 und Code2.doc
 Beschreibung:

Download
 Dateiname:  Bild Code1 und Code2.doc
 Dateigröße:  123.5 KB
 Heruntergeladen:  319 mal
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 - 2025 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.