Table of Contents
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,否则调用不成功返回其他值。