12
votes

I am trying to run threw this Tutorial http://emmanuelle.github.io/segmentation-of-3-d-tomography-images-with-python-and-scikit-image.html

where I want to do a Segmentation of 3-D tomography images with Python.

I'm struggling directly in the beginning, with reshaping the image.

This is the code:

%matplotlib inline

import numpy as np

import matplotlib.pyplot as plt 

import time as time 

data = np.fromfile('/data/data_l67/dalladas/Python3/Daten/Al8Cu_1000_g13_t4_200_250.vol', dtype=np.float32)

data.shape

(60940800,)

data.reshape((50,1104,104))

--------------------------------------------------------------------------- ValueError Traceback (most recent call last) in () ----> 1 data.reshape((50,1104,104))

ValueError: cannot reshape array of size 30470400 into shape (50,1104,104)

Can somebody help me out?

3
Try a.reshape(50, 1104, -1) which will figure out 3rd dim automagicallysagarr

3 Answers

19
votes

It seems that there is a typo, since 1104*1104*50=60940800 and you are trying to reshape to dimensions 50,1104,104. So it seems that you need to change 104 to 1104.

8
votes

In Matrix terms, the number of elements always has to equal the product of the number of rows and columns. In this particular case, the condition is not matching.

6
votes
data.reshape((50,1104,-1))

works for me