如何在 MATLAB 中提取 3D 数组元素的随机位移强度差异?
How to extract the random shift intensity difference a 3D array elements in MATLAB?
我正在对 3D 医学图像进行图像分割。在一篇相关论文中,作者提取了一个我不明白应该如何计算的特征,f(x, u) = I(x + u) − I(x)
是体素x
和偏移量u
之间的随机偏移强度差异mm^3
。如果我们考虑医学图像的 pixel_spacing 是 0.36x0.36x0.7 mm^3
,我如何在内存中提取和获得整个体积的这个特征,并且计算效率高 u=2 mm^3
?感谢您的帮助。
@user630317 的评论指出,对于 3D 图像,u 应该是 3D 向量。
另外,图像是 'voxelized' 即离散的。
因此 x 是一个包含整数条目和单位作为体素(不是毫米)的向量。
u 的元素可以是整数,也可以不是整数,但单位为体素。
如果你有小数元素,则必须对小数位移进行插值并丢失信息。
matlab 函数 imtranslate 可以进行整数移位和小数移位。
让我成为代表 3D 体积的 matlab 中的 3 维数组。
让 u 成为平移的 3D 矢量(以体素为单位)。
那么翻译后的图像就是 I2 = imtranslate(I,u)
这是一个带有 3D 数组的示例代码:
I = randn(3,3,3);
u = [1.5,1,1];
I2 = imtranslate(I,u);
我正在对 3D 医学图像进行图像分割。在一篇相关论文中,作者提取了一个我不明白应该如何计算的特征,f(x, u) = I(x + u) − I(x)
是体素x
和偏移量u
之间的随机偏移强度差异mm^3
。如果我们考虑医学图像的 pixel_spacing 是 0.36x0.36x0.7 mm^3
,我如何在内存中提取和获得整个体积的这个特征,并且计算效率高 u=2 mm^3
?感谢您的帮助。
@user630317 的评论指出,对于 3D 图像,u 应该是 3D 向量。
另外,图像是 'voxelized' 即离散的。 因此 x 是一个包含整数条目和单位作为体素(不是毫米)的向量。 u 的元素可以是整数,也可以不是整数,但单位为体素。 如果你有小数元素,则必须对小数位移进行插值并丢失信息。
matlab 函数 imtranslate 可以进行整数移位和小数移位。
让我成为代表 3D 体积的 matlab 中的 3 维数组。 让 u 成为平移的 3D 矢量(以体素为单位)。
那么翻译后的图像就是 I2 = imtranslate(I,u)
这是一个带有 3D 数组的示例代码:
I = randn(3,3,3);
u = [1.5,1,1];
I2 = imtranslate(I,u);