2013-08-26 3 views
0

У меня есть двоичный файл, из которого я должен читать данные. Файл состоит из матрицы 128x128x243 (шестнадцатеричный формате), который я прочитал со следующим кодом:Участок двоичного файла в Python

with open("zubal_voxel_man.dat", "rb") as fileHandle: 

    dim_x = 128 
    dim_y = 128 
    dim_z = 243 

    data = np.zeros((dim_x,dim_y,dim_z), dtype=np.int) 

    for p in range(0, dim_x): 
     for q in range (0, dim_y): 
      for r in range(0, dim_z): 
       data[p][q][r] = ord(fileHandle.read(1)) 

Как визуализировать эти данные с Python? Каждая позиция x, y, z имеет значение от 0 до 255 (шкала серого), которую я хотел бы отобразить.

Любая помощь очень ценится!

+0

Как уже говорилось, эта проблема имеет слишком много шагов, на которые нужно ответить четко. Я предлагаю вам разбить проблему на части: 1) прочитать данные и напечатать несколько моментов, чтобы убедиться, что вы делаете это правильно; 2) получить структуру данных Python в соответствии с вашими данными; и т.д; и если у вас возникнут какие-либо проблемы с этими шагами, попросите снова сделать отдельный шаг. – tom10

ответ

2

Часть вашей проблемы с кодом:

datax = data[:,0] 
datay = data[:,1] 
dataz = data[:,2] 

Что не делать то, что вы ожидаете от нарезку в одну ось, что берет кусочек Y = 0, то у = 1, Y = 2 и накладывая их друг на друга - ваша другая проблема заключается в том, что у вас есть трехмерный массив значений, который дает каждое значение 4 измерения X, Y, Z, Value - и вы пытаетесь построить их на поверхности. который имеет только 3 измерения.

Я считаю, что ваш первый приоритет - это разъяснить, что представляют ваши данные и как они структурированы.

Смежные вопросы