Gadgetron中滤波函数apply_kspace_filter_E2的理解

分析:
代码中RO、E1、E2分别表示读方向,第一个相位编码方向,第二个相位编码方向。
因此,滤波函数apply_kspace_filter_RO,apply_kspace_filter_ROE1就分别表示沿对应方向的一维、二维滤波。
因此函数apply_kspace_filter_E2表示沿第二个相位编码方向(层方向)的一维滤波:

代码理解:

template <typename T> 
void apply_kspace_filter_E2(const hoNDArray<T>& data, const hoNDArray<T>& fE2, hoNDArray<T>& dataFiltered)
{
    try
    {
        GADGET_CHECK_THROW(data.get_size(2) == fE2.get_number_of_elements());

        hoNDArray<T> fRO(data.get_size(0));
        fRO.fill(T(1.0));             //将第一个维度的滤波器取值全为1.

        hoNDArray<T> fE1(data.get_size(1));
        fE1.fill(T(1.0));             //将第二个维度的滤波器取值全为1.

        hoNDArray<T> fxyz;
        compute_3d_filter(fRO, fE1, fE2, fxyz);             //由于有了前面的两步,这里虽然采用的是3d滤波,实际效果只是用到第三个维度的滤波器。将其组合起来,只有第三个维度的滤波器有滤波效果。

        Gadgetron::multiply(data, fxyz, dataFiltered);       //简单的点对点相乘,实现滤波效果。
    }
    catch (...)
    {
        GADGET_THROW("Errors in apply_kspace_filter_E2(...) ... ");
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值