【问题标题】:calculate first,second,third derivative on 3d image计算 3d 图像的一、二、三阶导数
【发布时间】:2016-03-21 23:02:44
【问题描述】:

真的,我在用 matlab 计算 3d 图像的一、二、三阶导数时遇到问题。

我有 60 片膝盖 mri 的 dicom 格式,我想计算导数。

对于二维图像,当我们要计算 x 或 y 方向的导数时,例如我们使用 x 方向的 sobel 或其他算子来计算 x 方向的导数。

但是在我有 60 片 dicom 格式的 3d 图像中,我如何计算 x、y、z 方向上的一阶、二阶和三阶导数。 我这样实现一阶导数:

F 是具有所有切片的 3d 矩阵。 [k,l,m] = 尺寸(F);

但我认为这不是真的。请帮助我,我真的需要你的答案。

我们如何计算 x ,y ,z 方向的一、二、三阶导数?

案例'x'

D(1,:,:) = (F(2,:,:) - F(1,:,:));
D(k,:,:) = (F(k,:,:) - F(k-1,:,:));
D(2:k-1,:,:) = (F(3:k,:,:)-F(1:k-2,:,:))/2;

案例'y'

D(:,1,:) = (F(:,2,:) - F(:,1,:));
D(:,l,:) = (F(:,l,:) - F(:,l-1,:));
D(:,2:l-1,:) = (F(:,3:l,:)-F(:,1:l-2,:))/2;

案例'z'

D(:,:,1) = (F(:,:,2) - F(:,:,1));
D(:,:,m) = (F(:,:,m) - F(:,:,m-1));
D(:,:,2:m-1) = (F(:,:,3:m)-F(:,:,1:m-2))/2;

【问题讨论】:

  • 你的代码适合一阶导数。只是重复?二阶导数->导数的导数

标签: image matlab 3d derivative


【解决方案1】:

有一个功能!查找https://www.mathworks.com/help/images/ref/imgradient3.html,其中有指示梯度计算类型的选项:sobel 是默认值。

如果您想要方向渐变,请考虑使用https://www.mathworks.com/help/images/ref/imgradientxyz.html,它提供相同的选项,但返回方向渐变 Gx、Gy 和 Gz。

volData = load('mri');
sz = volData.siz;
vol = squeeze(volData.D);
[Gx, Gy, Gz] = imgradientxyz(vol);

请注意,这些函数是在 R2016a 中引入的。

【讨论】:

  • 太棒了,太棒了,非常感谢,我可以使用高斯滤波器代替一些预定义的滤波器,如 sobel 吗?如果我使用 ix 而不是原始图像,ixx 将在输出中?
  • 如果您想对图像进行高斯模糊,您也可以使用高斯核对其进行预过滤。根据您对 ix 和 ixx 的定义,我相信对导数图像进行导数应该可以得到二阶导数。
【解决方案2】:

更高维度的“一阶导数”称为梯度向量。有许多公式可以数值近似梯度,最近的一篇论文中讨论了最准确的方法之一:Leclaire 等人的“High Order Spatial Generalization of 2D and 3D Isotropic Discrete Gradient Operators with Fast Evaluation on GPUs”。

一维以上的高阶导数是张量。特别是“二阶导数”是一个 rank-2 张量,有 6 个独立分量,最低阶近似为

Dxx(x,y,z) = (F(x+1,y,z) - 2*F(x,y,z) + F(x-1,y,z))/2
Dyy(x,y,z) = (F(x,y+1,z) - 2*F(x,y,z) + F(x,y-1,z))/2
Dzz(x,y,z) = (F(x,y,z+1) - 2*F(x,y,z) + F(x,y,z-1))/2
Dxy(x,y,z) = (F(x+1,y+1,z) - F(x+1,y-1,z) - F(x-1,y+1,z) + F(x-1,y-1,z))/4
Dxz(x,y,z) = (F(x+1,y,z+1) - F(x+1,y,z-1) - F(x-1,y,z+1) + F(x-1,y,z-1))/4
Dyz(x,y,z) = (F(x,y+1,z+1) - F(x,y+1,z-1) - F(x,y-1,z+1) + F(x,y-1,z-1))/4

“三阶导数”将是 3 阶张量,并且具有更多分量。公式很长,可以通过考虑 F 的泰勒级数展开式推导出来

【讨论】:

    猜你喜欢
    • 2021-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多