Problem mit numpy Array
Verfasst: Donnerstag 25. März 2010, 23:59
Hallo alle zusammen,
ich programmiere seit ~10 Jahren in IDL und mache meine ersten Gehversuche in Python. Um ein Ziel beim Lernen zu haben, versuche ich eine Rauschanalyse (NNP Noise power spectra) von medizinischen Bildern umzusetzen.
Dabei soll ein klinisches Bild (4644 x 3508 Pixel) eingelesen werden. Aus dem Bild wird ein Ausschnitt ausgewählt, von dem dann die 2D FFT erstellt werden soll. Das Einlesen und Konvertieren in ein "numpy" Array funktioniert recht einfach. Nach dem Rückspeichern des Bildes unter anderem Namen, kann ich mit dem Bildbetrachter ImageJ oder einem direkten Dateivergleich sehen, daß bis hier alle so läuft wie gewünscht.
Aber das Ausschneiden eines Bereichs (so wie ich es von IDL her kenne) scheitert. Testweise speichere ich nach dem gleichen Verfahren den Bereich ab. Das resultierende Bild in ImageJ ist aber völlig durcheinander gewürfelt.
Was mache ich hier im Code Beispiel unten falsch (Der Einrückfehler im Code ist durch das Kopieren entstanden und ich habe nicht herausgefunden, wie ich dies bei der Texteingabe hier ändern kann):
Vielen Dank im vorhinein
#!/usr/bin/python
# -*- coding: utf-8 -*-
''' Test binary IO
Version: x.xx first tests Datum: 02.03.2010
'''
import numpy as np
if __name__ == '__main__':
Dateiname = "/home/hscherer/work/K_4644_3508.raw"
MyImage = np.fromfile(Dateiname, dtype=np.uint16, count=4644*3508)
MyImage = np.array(MyImage)
Data_array = MyImage.reshape((4644, 3508))
Data_array.tofile("/home/hscherer/work/Big_4644x3508.raw")
x = 1335
y = 2080
Data_array_AOI = Data_array[x:x+2048, y:y+1024]
Data_array_AOI.tofile("/home/hscherer/work/t_2048x1024.raw")
print(Data_array_AOI.shape)
print("Fertig")
ich programmiere seit ~10 Jahren in IDL und mache meine ersten Gehversuche in Python. Um ein Ziel beim Lernen zu haben, versuche ich eine Rauschanalyse (NNP Noise power spectra) von medizinischen Bildern umzusetzen.
Dabei soll ein klinisches Bild (4644 x 3508 Pixel) eingelesen werden. Aus dem Bild wird ein Ausschnitt ausgewählt, von dem dann die 2D FFT erstellt werden soll. Das Einlesen und Konvertieren in ein "numpy" Array funktioniert recht einfach. Nach dem Rückspeichern des Bildes unter anderem Namen, kann ich mit dem Bildbetrachter ImageJ oder einem direkten Dateivergleich sehen, daß bis hier alle so läuft wie gewünscht.
Aber das Ausschneiden eines Bereichs (so wie ich es von IDL her kenne) scheitert. Testweise speichere ich nach dem gleichen Verfahren den Bereich ab. Das resultierende Bild in ImageJ ist aber völlig durcheinander gewürfelt.
Was mache ich hier im Code Beispiel unten falsch (Der Einrückfehler im Code ist durch das Kopieren entstanden und ich habe nicht herausgefunden, wie ich dies bei der Texteingabe hier ändern kann):
Vielen Dank im vorhinein
#!/usr/bin/python
# -*- coding: utf-8 -*-
''' Test binary IO
Version: x.xx first tests Datum: 02.03.2010
'''
import numpy as np
if __name__ == '__main__':
Dateiname = "/home/hscherer/work/K_4644_3508.raw"
MyImage = np.fromfile(Dateiname, dtype=np.uint16, count=4644*3508)
MyImage = np.array(MyImage)
Data_array = MyImage.reshape((4644, 3508))
Data_array.tofile("/home/hscherer/work/Big_4644x3508.raw")
x = 1335
y = 2080
Data_array_AOI = Data_array[x:x+2048, y:y+1024]
Data_array_AOI.tofile("/home/hscherer/work/t_2048x1024.raw")
print(Data_array_AOI.shape)
print("Fertig")