Python 从字节数组读取未压缩的图像

Python 从字节数组读取未压缩的图像,python,image,dicom,Python,Image,Dicom,我用超声波设备创建了一个未压缩的dicom视频。现在我想在python应用程序中逐帧读取它,并暂时保存该文件。稍后我想添加一些图像处理。到目前为止,我已经尝试提取属于第一帧的字节 import dicom import array from PIL import Image filename = 'image.dcm' img = dicom.read_file(filename) byte_array = array.array('B', img.PixelData[0:(img.Rows

我用超声波设备创建了一个未压缩的dicom视频。现在我想在python应用程序中逐帧读取它,并暂时保存该文件。稍后我想添加一些图像处理。到目前为止,我已经尝试提取属于第一帧的字节

import dicom
import array
from PIL import Image

filename = 'image.dcm'
img = dicom.read_file(filename)
byte_array = array.array('B', img.PixelData[0:(img.Rows * img.Columns)])
现在如何将这个bytearray放入文件(位图、jpeg等)?我尝试将python图像库与
image=image.fromarray(byte\u array)
一起使用,但出现了一个错误

AttributeError:“str”对象没有属性“数组\u接口”


我想在某个地方我也必须指定图像的尺寸,但还没有找到解决方法。

多亏了这些评论,我找到了解决方法。图像为“RGB”,阵列形状为(3L、800L、376L)。我可以将
pixel_数组
作为numpy数组,并将其重塑为(800L、376L、3L),而不是将其转换为字节数组


多亏了这些评论,我才想出了解决办法。图像为“RGB”,阵列形状为(3L、800L、376L)。我可以将
pixel_数组
作为numpy数组,并将其重塑为(800L、376L、3L),而不是将其转换为字节数组


我对python了解不多,但最近我在一个线程中发布了一个类似的主题,也许你会发现这很有用:首先尝试调整数组的大小,使其与图像维度相对应。在担心输出之前,我会先转储帧行、cols、字节大小和帧计数以确认源代码。我对python了解不多,但我最近发布到一个处理类似主题的线程,也许您会发现这很有用:首先尝试调整数组的大小,以与图像尺寸相对应。在担心输出之前,我会转储帧行、列、字节大小和帧计数以确认源代码。
import dicom
from PIL import Image

filename = 'image.dcm'
img = dicom.read_file(filename)
output = img.pixel_array.reshape((img.Rows, img.Columns, 3))
image = Image.fromarray(output).convert('LA')
image.save('output.png')