グラフの背景をdicom画像に設定しようとしています。私はthis exampleに従ったが、dicom.pixel_array
から与えられた画像データはRGBAではない。私はそれを変換する方法もわかりません。私はまた、ボケが何を期待しているのかよく分かりません。私はドキュメンテーションで詳細を見つけることを試みましたが、そのような運はありません。Bokehでのdicom画像の表示
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