Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将数据库中的所有图像重新采样为相同的体素大小_Python_Matlab_Image Processing_Medical Imaging - Fatal编程技术网

Python 将数据库中的所有图像重新采样为相同的体素大小

Python 将数据库中的所有图像重新采样为相同的体素大小,python,matlab,image-processing,medical-imaging,Python,Matlab,Image Processing,Medical Imaging,我有3个dicom堆栈,大小分别为512x512x133、512x512x155和512x512x277。我想对所有堆栈进行重新采样,以确定大小512x512x277、512x512x277和512x512x277。怎么做 我知道我可以使用切片厚度和像素间距进行重采样。但这并不能确保每种情况下的切片数相同。您可以使用,为每个轴指定缩放因子数组,如下所示: # example for first image zoomArray = desiredshape.astype(float) / orig

我有3个dicom堆栈,大小分别为
512x512x133、512x512x155和512x512x277
。我想对所有堆栈进行重新采样,以确定大小
512x512x277、512x512x277和512x512x277
。怎么做

我知道我可以使用切片厚度和像素间距进行重采样。但这并不能确保每种情况下的切片数相同。

您可以使用,为每个轴指定缩放因子数组,如下所示:

# example for first image
zoomArray = desiredshape.astype(float) / original.shape
zoomed = scipy.ndimage.interpolate.zoom(original, zoomArray)
更新:

如果速度太慢,您可以尝试从“图像立方体”的垂直切片中创建单独的图像,用一些高速图像库处理它们(有些人喜欢ImageMagick,还有PIL、opencv等),然后再次将它们堆叠在一起。这样,您将拍摄512张大小为512x133的图像,并将其调整为512x277,然后再次堆叠为512x512x277,这是您最终所需的大小。此外,这种分离将允许并行化。一个要考虑的是:只有横坐标轴(你将切割2D图像的那一个)不会被调整大小,这才是有效的! 您可以在中使用

将torchio导入为tio
小、中、大=dicom#U目录#三个dicom的文件夹
参考=tio.刻度图像(大)
重采样=tio.重采样(参考)
小样本\重采样=重采样(小)
中等\重采样=重采样(中等)
这三幅图像现在具有相同的形状,512 x 512 x 277


免责声明:我是TorchIO的主要开发者。

desiredshape将包含(512512277)?我已经更新了答案,但我想知道它是否会大大提高速度。请不要问重复的问题。如果你的问题没有得到答案,那就改进一下问题,或者给它多一点时间。事实上,发生的是,我在晚上发布了这个问题。但由于一些小故障(可能是),它在早上没有出现。所以,我又贴了一次(对不起!