Я пытаюсь установить фон графика для изображения dicom. Я следовал this example, но данные изображения, полученные от dicom.pixel_array
, не являются RGBA. Я не уверен, как его преобразовать. Я также не уверен, что именно ожидает боке. Я пробовал найти специфику в документации, но не такую удачу.Просмотр изображения dicom с помощью Bokeh
from bokeh.plotting import figure, show, output_file
import dicom
import numpy as np
path = "/pathToDicomImage.dcm"
data = dicom.read_file(path)
img = data.pixel_array
p = figure(x_range=(0,10), y_range=(0,10))
# must give a vector of images
p.image_rgba(image=[img], x=0, y=0, dw=10, dh=10)
output_file("image_rgba.html", title="image_rgba.py example")
show(p)
Этот код не дает мне никаких ошибок, но он ничего не отображает. Возможно, в пиксельном массиве нет альфа-данных, поэтому alpha
по умолчанию 0
? Я не уверен. Кроме того, я не могу понять, как это проверить.
решаемые
Как было отмечено, мне просто нужно, чтобы отобразить данные пикселя в RGBA пространстве. для этого экземпляра это означает дублирование данных по каждому каналу и настройку альфы полностью.
def dicom_image_to_RGBA(image_data):
rows = len(image_data)
cols = rows
img = np.empty((rows,cols), dtype=np.uint32)
view = img.view(dtype=np.uint8).reshape((rows, cols, 4))
for i in range(0,rows):
for j in range(0,cols):
view[i][j][0] = image_data[i][j]
view[i][j][1] = image_data[i][j]
view[i][j][2] = image_data[i][j]
view[i][j][3] = 255
return img