![](/img/trans.png)
[英]Resizing a NumPy array that's a DICOM image - Resize or Rescale?
[英]dicom image resizing before converting to numpy array
我在一个文件夹中有数千个dicom图像。 我像这样用pydicom
阅读它们
import numpy as np
import dicom
folder = "/images"
imgs = [dicom.read_file(folder + '/' + s) for s in os.listdir(folder)]
然后,我想将所有图像堆叠为一个numpy数组,如下所示:
data = np.stack([i.pixel_array for i in imgs])
但是,图像大小不同,因此无法堆叠。
如何添加将所有图像调整为1000x1000的步骤?
如果将其存储为numpy数组的列表,则它们的大小可以不同。 否则请使用scipy
缩放功能,
import numpy as np
import dicom
import scipy
xsize = 1000; ysize = 1000
folder = "/images"
data = np.zeros(xsize, ysize, len(os.listdir(folder)))
for i, s in enumerate(os.listdir(folder)):
img = np.array(dicom.read_file(folder + '/' + s).pixel_array)
xscale = xsize/img.shape[0]
yscale = ysize/img.shape[1]
data[:,:,i] = scipy.ndimage.interpolation.zoom(img, [xscale, yscale]))
您可以另存为列表和堆栈,但是用len(os.listdir(folder))预先分配一个大小为1000 x 1000的numpy数组似乎更容易。 我没有dicom
或测试文件,因此无法检查您的情况,但是这个想法确实可行(我在将图像缩放到合适的尺寸之前就已经使用过)。 还要检查秤是否适合您的情况。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.