Создать файл .mhd из 2D изображений - PullRequest
0 голосов
/ 26 июня 2018

Я изучаю трехмерные реконструкции в medikal, и у меня есть набор данных изображений, который включает в себя множество двумерных изображений. Мой код нуждается в файле .raw. Как я могу преобразовать мои изображения в файл .raw? (Мои изображения в формате png, и на выходе должен быть файл .mhd) Я использовал этот файл .mhd для своего кода:

   ObjectType = Image
NDims = 3
BinaryData = True
BinaryDataByteOrderMSB = False
CompressedData = False
TransformMatrix = -1 0 0 0 1 0 0 0 -1
Offset = 0 0 0
CenterOfRotation = 0 0 0
AnatomicalOrientation = LAS
ElementSpacing = 0.9375 0.9375 1.5
ITK_InputFilterName = MetaImageIO
DimSize = 256 256 94
ElementType = MET_SHORT
ElementDataFile = FullHead.raw

Но мне нужен файл .raw для использования файла .mhd. С другой стороны, я не могу конвертировать в .rawfile из png изображений

1 Ответ

0 голосов
/ 26 июня 2018

Вы должны указать, какие у вас есть входные данные. Например, они DICOM изображения? TIFF? Любой другой формат? Было бы проще всего, если бы вы предоставили одно примерное изображение.

Еще подумайте, какой выход вам нужен? MHD (MetaImage Header) обычно содержит только метаданные, RAW - точное изображение.

Улучшенный ответ ниже

Необработанные данные - это просто содержимое изображения png, которое вы прочитали. Поэтому считывайте изображения, меняйте 2D-матрицу на 1D-массив и объединяйте все файлы:

from PIL import Image
import numpy as np
slices = []
for afile in imageList:
    img = Image.open(afile).convert('L')
    arr = np.array(img).flatten('C')  #if image gets transposed, then 
flatten('F')
    slices.append(arr)

arr2 = np.array(slices).flatten('C').astype('short')
arr2.tofile("OutputFile.raw")
...