【问题标题】:How to get a picture out of raw hex data in python?如何从python中的原始十六进制数据中获取图片?
【发布时间】:2015-03-08 14:55:07
【问题描述】:

我正在使用 pydicom 从 dicom 文件中提取图像数据。不幸的是,pydicom 无法直接提取我可以直接使用的 numpy 数据数组,但我得到了一个包含所有十六进制值的数据字符串(即 f.eks。\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

还有其他方法可以根据这些数据创建图像吗?

【问题讨论】:

  • 我认为Image.fromstring 的第二个参数应该是宽度/高度大小,而不是长度。试试Image.fromstring('RGB', (100,100), pixelData)

标签: python image numpy pydicom


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2021-03-16
      • 2020-08-27
      • 2015-05-07
      • 1970-01-01
      • 2014-02-18
      • 2018-09-15
      • 2011-07-12
      • 2021-03-29
      • 2021-09-30
      相关资源
      最近更新 更多