ich einige Arbeit machte wobei ich laden muß ein CT-Bilder in einem Format, das Analyze 7.5 file format genannt manipulieren.Laden Analysieren 7.5-Format Bilder in Python
Ein Teil dieser Manipulation - die absolut Alter mit großen Bildern nimmt - wird die rohen Binärdaten zu einem numpy Array geladen und es auf die richtigen Dimensionen Umformung. Hier ein Beispiel:
headshape = (512,512,245) # The shape the image should be
headdata = np.fromfile("Analyze_CT_Head.img", dtype=np.int16) # loads the image as a flat array, 64225280 long. For testing, a large array of random numbers would do
head_shaped = np.zeros(shape=headshape) # Array to hold the reshaped data
# This set of loops is the problem
for ux in range(0, headshape[0]):
for uy in range(0, headshape[1]):
for uz in range(0, headshape[2]):
head_shaped[ux][uy][uz] = headdata[ux + headshape[0]*uy + (headshape[0]*headshape[1])*uz] # Note the weird indexing of the flat array - this is the pixel ordering I have to work with
Ich weiß numpy Umbildung von Arrays schnell tun können, aber ich kann nicht die richtige Kombination von Transformationen erforderlich herauszufinden, um die Wirkung der verschachtelten Schleifen zu replizieren.
Gibt es eine Möglichkeit, dass die seltsame Indizierung mit einer Kombination aus numpy.reshape/numpy.ravel etc zu replizieren?
Genau der Code, den ich suchte, danke! – Theolodus