ValueError:无法将输入数组从形状256,256,3广播到形状256,256

问题描述

我正在尝试读取一些DICOM文件,并将它们转换为numpy数组。但是当我去存储图像的原始数据时,会发生此错误

回溯(最近通话最近): 文件“ C:/Users/Matheus/PycharmProjects/mesTrado/AreaDeInteresse/testando3.py”,第47行 d_array [:,:,dcms.index(dcm)] = np.array(b.pixel_array) ValueError:无法将输入数组从形状(256,256,3)广播到形状(256,256)

我的代码是对代码的重读: https://gist.github.com/somada141/8dd67a02e330a657cf9e

from tkinter import *
from PIL import ImageTk,Image
from os import listdir
from os.path import isfile,join
import cv2
import numpy as np
###################
import os
import pydicom as dicom
from matplotlib import pyplot as plt
#%matplotlib inline
import numpy as np
###################

drawing = False
point1 = ()
point2 = ()

image_axial=[]
image_sagital=[]
image_coronal=[]

root=Tk()

root.title('viewer das image')

root_dir = 'D:\\Tomografias UNIOESTE odontologia\\Neusa Maria Scionte Fermino\\IMGDATA'
dcms = []
for d,s,fl in os.walk(root_dir):
    for fn in fl:
        if ".dcm" in fn.lower():
            dcms.append(os.path.join(d,fn))

print(dcms[0])
d = dicom.read_file(dcms[0])
print(d)
print(d.pixel_array.shape)
ref_dicom = dicom.read_file(dcms[0])
d_array = np.zeros((ref_dicom.Rows,ref_dicom.Columns,len(dcms)),dtype=ref_dicom.pixel_array.dtype)

######

######

for dcm in dcms:
    b = dicom.read_file(dcm)
    d_array[:,:,dcms.index(dcm)] = np.array(b.pixel_array)

for numero,image in enumerate(d_array):
    print(numero)
    image_axial.append(ImageTk.PhotoImage(Image.fromarray(d_array[numero,:])) )
    image_sagital.append(ImageTk.PhotoImage(Image.fromarray(d_array[:,numero,:])))
    if numero<len(dcms):
        image_coronal.append(ImageTk.PhotoImage(Image.fromarray(d_array[:,numero])))

有人可以帮助我解决错误吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)