如何缩放图像使其各向同性?

2024-06-16 12:26:58 发布

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

我有一个由72个z平面组成的堆栈,比如说,x轴700像素,y轴1000像素。 这是一个标签图像,意味着所有已分割的对象都由一个整数值定义,该整数值用作定义图像中对象占用哪些像素的标签。体素是各向异性的(xy=0.1μm,z=0.25μm),我想让它们各向同性,以便进行下游分析。我有点困惑,在python中使用skimage和numpy的最佳方法是什么

谢谢D


Tags: 对象方法图像numpy定义堆栈整数像素
1条回答
网友
1楼 · 发布于 2024-06-16 12:26:58

我想你可以用仿射变换来实现。我主要基于https://github.com/VolkerH/Lattice_Lightsheet_Deskew_Deconv的类似工作。我相信在他们的示例笔记本中有一个这样的缩放变换示例。您需要弄清楚输出卷的形状,但希望这能让您摆脱困境

import numpy as np
from scipy.ndimage import affine_transform

# create a transformation matrix
scale = np.eye(4)
scale[0, 0] = xy_voxelsize / z_voxelsize

# perform affine transformation
isotropic_vol = affine_transform(anisotropic_vol, np.linalg.inv(scale), output_shape=?, order=1)

我认为您可以从我上面提到的同一个存储库中找到一些有用的函数来确定输出形状。对于您想要的东西来说,这可能有点过头了,但我对那里的大部分代码都有很好的经验。您可能很容易自己计算出输出形状

我不知道你有多少张照片,但这些看起来相当大。如果您可以访问GPU,那么仿射变换的gputools版本(https://github.com/maweigert/gputools)也可以使您的生活更轻松

相关问题 更多 >