python中参数设置和滤波相关

这里介绍在python中相关参数的设置读取和滤波功能的开启关闭。

python下参数设置和读取

  • 单个参数设置,如设置帧格式:

    wparams_fmt = {dmcam.PARAM_FRAME_FORMAT: dmcam.param_val_u()}
    wparams_fmt[dmcam.PARAM_FRAME_FORMAT].frame_format.format = 2
    if not dmcam.param_batch_set(dev, wparams_fmt):
            log.error(" frame format failed")
    
  • 单个参数读取,如读取积分时间:

    param_val = dmcam.param_batch_get(dev, [dmcam.PARAM_INTG_TIME])
    param_intg_us = param_val.intg.intg_us
    

python下滤波功能开启和关闭

  • 像素校准,用于深度数据校正:

    drnu_param = dmcam.filter_args_u()
    drnu_param.case_idx = 0  #  12MHz calibaration
    dmcam.filter_enable(dev, dmcam.DMCAM_FILTER_ID_PIXEL_CALIB, drnu_param, 0)      #使能像素校准
    
    dmcam.filter_disable(dev, dmcam.DMCAM_FILTER_ID_PIXEL_CALIB)    #关闭像素校准
    
  • 深度滤波,用于深度数据滤波:

    filter_param = dmcam.filter_args_u()
    filter_param.median_ksize = 3           # 深度滤波通常设置值
    dmcam.filter_enable(dev, dmcam.DMCAM_FILTER_ID_MEDIAN, filter_param, sys.getsizeof(filter_param))       #使能深度滤波
    
    dmcam.filter_disable(dev, dmcam.DMCAM_FILTER_ID_MEDIAN) #关闭深度滤波
    
  • 幅值滤波,用于过滤质量差的点:

    amp_min_val = dmcam.filter_args_u()
    amp_min_val.min_amp = 30        #设置最小幅值滤波的阈值
    dmcam.filter_enable(dev, dmcam.DMCAM_FILTER_ID_AMP, amp_min_val, sys.getsizeof(amp_min_val))    #使能幅值滤波
    
    dmcam.filter_enable(dev, dmcam.DMCAM_FILTER_ID_AMP)             #关闭幅值滤波
    
  • 自动积分时间,开启模组根据被测物自动调整曝光时间:

    intg_auto_arg = dmcam.filter_args_u()
    intg_auto_arg.sat_ration = 5    #自动曝光设置的值
    dmcam.filter_enable(dev, dmcam.DMCAM_FILTER_ID_AUTO_INTG, intg_auto_arg, sys.getsizeof(intg_auto_arg))  #开启自动曝光
    
    dmcam.filter_disable(dev,DMCAM_FILTER_ID_AUTO_INTG)             #关闭自动曝光
    
  • 运动模式0,帧格式设置2:

    dmfilter = dmcam.filter_args_u()
    
    wparams_fmt = {dmcam.PARAM_FRAME_FORMAT: dmcam.param_val_u()}
    wparams_fmt[dmcam.PARAM_FRAME_FORMAT].frame_format.format = 2   #要设置帧格式为2
    dmcam.param_batch_set(dev, wparams_fmt)         #进行帧格式参数设置
    
    dmfilter.sport_mode = 0         #设置运动模式为0
    dmcam.filter_enable(dev, dmcam.DMCAM_FILTER_ID_SPORT_MODE, dmfilter, 0)         #开启运动模式0
    
    dmcam.filter_disable(dev, dmcam.DMCAM_FILTER_ID_SPORT_MODE)             #关闭运动模式0
    
  • 运动模式1,帧格式设置4:

    dmfilter = dmcam.filter_args_u()
    
    wparams_fmt = {dmcam.PARAM_FRAME_FORMAT: dmcam.param_val_u()}
    wparams_fmt[dmcam.PARAM_FRAME_FORMAT].frame_format.format = 4 #要设置的帧格式为4
    dmcam.param_batch_set(dev, wparams_fmt)  #进行帧格式设置
    
    dmfilter.sport_mode = 1         #设置运动模式为1
    dmcam.filter_enable(dev, dmcam.DMCAM_FILTER_ID_SPORT_MODE, dmfilter, 1)         #开启运动模式1
    
    #关闭运动模式1时,帧格式要先恢复到2
    wparams_fmt = {dmcam.PARAM_FRAME_FORMAT: dmcam.param_val_u()}
    wparams_fmt[dmcam.PARAM_FRAME_FORMAT].frame_format.format = 2 #恢复帧格式为2
    dmcam.param_batch_set(dev, wparams_fmt)  #进行帧格式设置
    
    dmcam.filter_disable(dev, dmcam.DMCAM_FILTER_ID_SPORT_MODE)             #关闭运动模式1