Я работаю с файлами DICOM, которые содержат данные изображений. Я использую pydicom для чтения метаданных из файла .DCM. Теперь данные пикселей, извлеченные из файла .DCM, возвращаются в виде двумерного массива numpy ndarray.
Конкретные файлы DICOM, с которыми я работаю, сохраняют одно значение интенсивности на пиксель. После некоторых манипуляций с ними я получаю одно значение с плавающей запятой (от 0,0 до 1,0) на пиксель в двумерном массиве ndarray:
[
[ 0.98788927, 0.98788927 0.98788927, ..., 0.88062284 0.89532872 0.87629758],
[ 0.98788927, 0.98788927, 0.98788927, ..., 0.8884083, 0.89446367, 0.87889273],
[ 0.98788927, 0.98788927, 0.98788927, ..., 0.89100346, 0.89532872, 0.87629758],
,...,
[ 0.97491349, 0.97491349, 0.97491349, ..., 0.74480969, 0.72318339, 0.73269896],
[ 0.97491349, 0.97491349, 0.97491349, ..., 0.74913495, 0.74480969, 0.74740484],
[ 0.97491349, 0.97491349, 0.97491349, ..., 0.74913495 0.75865052, 0.75086505],]
Я хотел бы преобразовать это в трехмерный ndarray с numpy, заменив каждый элемент последовательностью элементов [R, G, B], где R = G = B = значение интенсивности.
Функция ndarray.put () выравнивает матрицу, исключающую этот метод.
Я также пробовал:
for x in range( len(a[0]) ):
for y in range( len(a) ):
a[x][y] = [ a[x][y], a[x][y], a[x][y] ]
но получить
ValueError: setting an array element with a sequence.
Предложения? Я стараюсь максимально облегчить манипуляции с данными, потому что некоторые из этих изображений огромны, поэтому я хочу избежать взлома / ручного копирования всех данных в отдельную переменную.
Заранее благодарю за любую помощь.
numpy.array([a,a,a])
не работает? - person Stephen Terry   schedule 25.06.2011