如何在python中获取原始十六进制数据的图片?

时间:2015-03-08 14:55:08

标签: python image numpy pydicom

我正在使用pydicom从dicom文件中提取图像数据。不幸的是pydicom无法直接提取我可以直接使用的数据块,但是我得到一个包含所有十六进制值的数据字符串(iefeks。\x03\x80\x01\x0c\xa0\x00\x02P\x00\x04@\x00\t\x80\x00\x03...。我知道图像数据是以JPEG2000格式编码的有没有办法从这些数据中重建图像?我已经尝试通过

img = Image.fromstring('RGB', len(pixelData), pixelData)

但我收到了错误

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/lib/python2.7/dist-packages/PIL/Image.py", line 2064, in fromstring
    return frombytes(*args, **kw)
  File "/usr/local/lib/python2.7/dist-packages/PIL/Image.py", line 2049, in frombytes
    im = new(mode, size)
  File "/usr/local/lib/python2.7/dist-packages/PIL/Image.py", line 2015, in new
    return Image()._new(core.fill(mode, size, color))
TypeError: must be 2-item sequence, not int

还有另一种方法可以用这些数据创建图像吗?

2 个答案:

答案 0 :(得分:1)

Image.fromstring的第二个参数(大小)应该是高度和宽度的2元组:

  :param size: A 2-tuple, containing (width, height) in pixels.

答案 1 :(得分:0)

不幸的是,pydiacom存在JPEG压缩问题。有没有办法制作图像TIFF或其他一些未压缩的格式?是扫描数据吗?