微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决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 举报,一经查实,本站将立刻删除。