应用笔记13-Vzense 3D ToF相机的各种滤波应用

编辑:Sophia.feng 时间: 2024-10-23

ToF(Time-of-Flight)相机中四种滤波介绍

时间滤波:请查看《技术笔记10-时间滤波综合指南》了解时间滤波。
置信滤波:请查看《技术笔记12-深度学习置信滤波》了解置信滤波。
空间滤波:请查看《技术笔记13-理解空间滤波快速指南》了解空间滤波。
飞点滤波:请查看《技术笔记14-了解飞点滤波及其使用》了解飞点滤波。

滤波在ScepterGUITool中的应用

时间滤波:滤波阈值范围[1,3], 默认阈值设置为3,域值越大,滤波效果越明显,点云抖动越小,调节位置如下图所示:

置信滤波:滤波阈值范围[1, 100],默认阈值设置为15,阈值越大,滤波效果越明显,滤掉信号质量差的点数越多,但是域值过大会使深度图中的深度值丢失,因此需要根据实际场景需求调节合适的阈值进行应用。调节位置如下图所示:

空间滤波:滤波分为开启和关闭两种状态,默认关闭状态,若开启滤波,可以减少图像中不必要的噪声,实现整体平滑效果,但是也会使得图像数据失真变得模糊。调节位置如下图所示:

飞点滤波:滤波阈值范围[1,16],默认阈值设置为5,阈值越大,滤波效果越明显,滤掉边界的点数越多,但是阈值过大会使深度图中的深度值丢失,因此需要根据实际场景需求调节合适的阈值进行应用。调节位置如下图所示:

滤波在软件中API实现

参考例程:
BaseSDK/Windows/Samples/Base/NYX650/ToFFiltersSetGet。

时间滤波

API:

//设置时间滤波参数
ScStatus scSetTimeFilterParams(ScDeviceHandle device, ScTimeFilterParams params);

//获取当前时间滤波参数的设置
ScStatus scGetTimeFilterParams(ScDeviceHandle device, ScTimeFilterParams* pParams);

其中:
设备句柄:ScDeviceHandle。
时间滤波参数ScTimeFilterParams:

typedef struct
{
    int32_t threshold;   //表示滤波阈值,[1,3],值越大,滤波效果越明显,点云抖动越小
    bool enable;         //表示滤波是否打开,true 代表打开,false 代表关闭
} ScTimeFilterParams;

返回值状态ScStatus:调用成功返回SC_OK,否则调用不成功返回其他值。

置信滤波

API:

//设置置信滤波参数
ScStatus scSetConfidenceFilterParams(ScDeviceHandle device, ScConfidenceFilterParams params);

//获取当前置信滤波参数的设置
ScStatus scGetConfidenceFilterParams(ScDeviceHandle device, ScConfidenceFilterParams* pParams);

其中:
设备句柄:ScDeviceHandle。
置信滤波参数ScConfidenceFilterParams:

typedef struct
{
    int32_t threshold;   //表示滤波阈值,[1,100],数值越大,过滤效果越明显,过滤掉的点数越多
    bool enable;         //表示滤波是否打开,true 代表打开,false 代表关闭
} ScConfidenceFilterParams;

返回值状态ScStatus:调用成功返回SC_OK,否则调用不成功返回其他值。

空间滤波

API:

//设置空间滤波使能
ScStatus scSetSpatialFilterEnabled(ScDeviceHandle device, bool bEnabled);

//获取当前空间滤使能设置
ScStatus scGetSpatialFilterEnabled(ScDeviceHandle device, bool* pEnabled);

其中:
设备句柄:ScDeviceHandle。
空间滤波状态参数bEnabled:true为开启状态,false为关闭状态。
返回值状态ScStatus:调用成功返回SC_OK,否则调用不成功返回其他值。

飞点滤波

API:

//设置飞点滤波参数
ScStatus scSetFlyingPixelFilterParams(ScDeviceHandle device, const ScFlyingPixelFilterParams params);
//获取当前置飞点波参数的设置
ScStatus scGetFlyingPixelFilterParams(ScDeviceHandle device, ScFlyingPixelFilterParams* params);

其中:
设备句柄:ScDeviceHandle。
飞点滤波参数ScFlyingPixelFilterParams:

typedef struct
{
    int32_t threshold;   //表示滤波阈值,[0,16],数值越大,过滤效果越明显,过滤掉的点数越多
    bool enable;         //表示滤波是否打开,true 代表打开,false 代表关闭
} ScFlyingPixelFilterParams;

返回值状态ScStatus:调用成功返回SC_OK,否则调用不成功返回其他值。

相关文章

How can we support you?

We will be happy to advise you on product selection and find the right solution for your application.