使用SimpleTk和Pytork读取dicom文件的性能

2024-09-30 18:13:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我想以pytorch张量格式直接将图像从内存加载到python。 我通过替换以下行修改了GetArrayViewFromImage()函数:

image_memory_view = _GetMemoryViewFromImage(image)
array_view = numpy.asarray(image_memory_view).view(dtype = dtype)

作者:

image_memory_view = _GetMemoryViewFromImage(image)
array_view = torch.as_tensor(image_memory_view, dtype = dtype)

实际上,它太慢了,我将其替换为:

image_memory_view = _GetMemoryViewFromImage(image)
array_view = numpy.asarray(image_memory_view).view(dtype = dtype)
array_view  = torch.as_tensor(array_view)

现在我有两个问题:

  1. 它的速度要慢得多,我真的不知道为什么用numpy读取它并转换它会更快
  2. 即使我添加了dtype参数,它返回了一个带有正确dtype的张量,但它读错了(例如,无论我选择什么torch.dtype,numpy中的-1000都读为252),这在使用numpy读取和转换时不是问题,为什么会发生这种情况

Tags: 内存图像imagenumpyviewas格式torch