Imaging: заменяет значения на 0 сверх заданного порога c - PullRequest
0 голосов
/ 15 января 2020

У меня есть данные типа float64, который имеет размер (57, 66, 40). Я хочу заменить все значения меньше 0,9 на 0.

Я пробовал самый простой способ без al oop:

img = nib.load('/home/anja/aw.nii')

data = img.get_fdata()

threshold_data = data[data<0.9] == 0

Но тогда я получаю threshold_data как тип bool с размером ( 55318,). Поэтому я потерял размеры своего изображения. Может кто-нибудь помочь мне, как это сделать, чтобы у меня все еще было мое изображение размера (57, 66, 40), и я просто заменил значения <0,9 на 0. </p>

1 Ответ

1 голос
/ 15 января 2020

Согласно nipy docs, метод get_fdata() возвращает массив NumPy, поэтому самый простой метод это просто:

img = nib.load('/home/anja/aw.nii')

data = img.get_fdata()

data[data<0.9] = 0

print(data.shape)
...