2017-02-10 3 views
0

Ich habe dieses Problem auf meinem MacOS: Ich habe eine Nrrd-Datei (https://it.mathworks.com/matlabcentral/fileexchange/48621-nrrdwriter-filename--matrix--pixelspacing--origin--encoding-) mit Matlab im Gzip-Format (große 512x512x200 Datei) geschrieben, und jetzt möchte ich es mit der Nrrdread-Funktion (https://it.mathworks.com/matlabcentral/fileexchange/34653-nrrd-format-file-reader) lesen). Wenn ich das tue, dies ist der Fehler erhalte ich:Matlab nrrd lesen gzip Fehler

Fehler mit gunzip> gunzipwrite (Linie 227) Unerwartetes Ende des Eingangsstroms, wenn man versucht, die Datei zu Gunzip "/ private/tmp/tp9eb78b24_4ead_4567_b911_db756a8f8444".

Fehler in gunzip> gunzipEntries (Zeile 147) Namen {k} = gunzipwrite (Einträge (k) .file, outputDir, baseName, streamCopier);

Fehler in gunzip (Zeile 89) Namen = gunzipEntries (Einträge, outputDir);

Fehler in nrrdread> readdata (Zeile 156) gunzip (tmpfile)

Fehler in nrrdread (Zeile 86) data = readdata (fid, meta, Datentyp);

Ich habe in diesem Beitrag gelesen (https://www.nitrc.org/forum/forum.php?thread_id=5972&forum_id=4073), dass es ein Java-Problem im Zusammenhang mit Gzip-Funktion ist. Hat jemand eine Idee, wie ich dieses Problem lösen kann, damit ich meine Bildmatrix lesen kann?

Vielen Dank

+0

Haben Sie einen Link zu einer Beispieldatei? –

+0

Hallo, danke für deinen Kommentar. Sie finden die Datei unter folgendem Link: https://drive.google.com/open?id=0BzllnM3z4XEtWHdtN3dQaEVeTg – David

+0

Bitte helfen Sie mir bei diesem Problem. Danke – David

Antwort

0

Die Beispieldatei eine ASCII-Header von 244 Bytes hat, von einem gzip-Stream mit einem fehlenden Acht-Byte-Anhänger gefolgt. (Der gzip-Stream beginnt mit 0x1f 0x8b 0x08) Die Daten im gzip-Stream können dekomprimiert werden, aber wer auch immer die Datei erstellt hat, hat versagt und den gzip-Stream nicht ordnungsgemäß beendet.

+0

Ok, wissen Sie, wie Sie das Problem lösen können? Ich habe diese Funktion verwendet, um die nrrd-Datei zu schreiben: https://it.mathworks.com/matlabcentral/fileexchange/48621-nrrdwrk-filename--matrix--pixelspacing--origin-encoding- Und das ist der Anruf in Matlab: nrrdWriter ('CT.nrrd', CT, pixelDimension, Ursprung, 'gzip'); Wo pixelDimension ist dieser Vektor: [0,8066; 0,8066; 3] und der Ursprung ist das Zentrum auf der CT. Weißt du, wie ich die Funktion ändern kann, damit sie funktioniert oder wie kann ich die CT.nrrd ändern, damit sie funktioniert? – David

+0

Nein, ich habe kein Matlab und es sieht so aus, als müsste ich den verlinkten Quellcode herunterladen können. –