Example #1
0
 def set_hdr(self, v=1):
     print('[INF] dmcam_dev_c.set_hdr(%d)' % v)
     hdr = dmcam.filter_args_u()
     if v > 0:
         dmcam.filter_enable(self.dev, dmcam.DMCAM_FILTER_ID_HDR, hdr, sys.getsizeof(hdr))
     else:
         dmcam.filter_disable(self.dev, dmcam.DMCAM_FILTER_ID_HDR)
Example #2
0
 def set_pix_calib(self, v=1):
     print('[INF] dmcam_dev_c.set_pix_calib(%d)' % v)
     witem = dmcam.filter_args_u()
     witem.case_idx = v
     if v > 0:
         dmcam.filter_enable(self.dev, dmcam.DMCAM_FILTER_ID_PIXEL_CALIB, witem, sys.getsizeof(witem))
     else:
         dmcam.filter_disable(self.dev, dmcam.DMCAM_FILTER_ID_PIXEL_CALIB)
Example #3
0
 def set_auto_arg(self, v=1):
     print('[INF] dmcam_dev_c.set_auto_arg(%d)' % v)
     intg_auto_arg = dmcam.filter_args_u()
     intg_auto_arg.sat_ration = v    #自动曝光设置的值
     if v > 0:
         dmcam.filter_enable(self.dev, dmcam.DMCAM_FILTER_ID_AUTO_INTG, intg_auto_arg, sys.getsizeof(intg_auto_arg))  #开启自动曝光
     else:
         dmcam.filter_disable(self.dev,dmcam.DMCAM_FILTER_ID_AUTO_INTG)             #关闭自动曝光
Example #4
0
 def set_median_filter(self, v=1):
     print('[INF] dmcam_dev_c.set_median_filter(%d)' % v)
     witem = dmcam.filter_args_u()
     witem.median_ksize = v
     if v > 0:
         dmcam.filter_enable(self.dev, dmcam.DMCAM_FILTER_ID_MEDIAN, witem, sys.getsizeof(witem))
     else:
         dmcam.filter_disable(self.dev, dmcam.DMCAM_FILTER_ID_MEDIAN)
Example #5
0
 def set_gauss_filter(self, v=1):
     print('[INF] dmcam_dev_c.set_gauss_filter(%d)' % v)
     witem = dmcam.filter_args_u()
     witem.min_amp = v
     if v > 0:
         dmcam.filter_enable(self.dev, dmcam.DMCAM_FILTER_ID_GAUSS, witem, sys.getsizeof(witem))
     else:
         dmcam.filter_disable(self.dev, dmcam.DMCAM_FILTER_ID_GAUSS)
Example #6
0
print(" Set paramters ...")
wparams = {
    dmcam.PARAM_INTG_TIME: dmcam.param_val_u(),
    dmcam.PARAM_FRAME_RATE: dmcam.param_val_u(),
}
wparams[dmcam.PARAM_INTG_TIME].intg.intg_us = 200
wparams[dmcam.PARAM_FRAME_RATE].frame_rate.fps = 10

# DMCAM_FILTER_ID_AMP
amp_min_val = dmcam.filter_args_u()
amp_min_val.min_amp = 0  # 40
if not dmcam.filter_enable(dev, dmcam.DMCAM_FILTER_ID_AMP, amp_min_val,
                           sys.getsizeof(amp_min_val)):
    print(" set amp to %d %% failed" % 0)
if not dmcam.filter_disable(dev, dmcam.DMCAM_FILTER_ID_FLYNOISE):
    print(" disable fly noise filter failed")

if not dmcam.param_batch_set(dev, wparams):
    print(" set parameter failed")

print(" Start capture ...")
dmcam.cap_start(dev)

f = bytearray(640 * 480 * 4 * 2)

if __name__ == '__main__':
    count = 0
    run = True
    while run:
        # get one frame
Example #7
0
    def _start_dmcam(self):
        if self.dev is None:
            log.info(" Open dmcam device ..")
            self.dev = dmcam.dev_open(None)
            if self.dev.version.ver.sw_ver < 154:
                print(u"仅支持固件版本不低于于154的模组设备,当前固件版本{},请升级模组固件,详见Readme".format(
                    self.dev.version.ver.sw_ver))
                input("")
                # win32api.MessageBox(0, u"仅支持固件版本不低于于154的模组设备,当前固件版本{},请升级模组固件,详见Readme".format(self.dev.version.ver.sw_ver), u"错误", win32con.MB_OK)
                sys.exit(0)
            # - set capture config  -
            cap_cfg = dmcam.cap_cfg_t()
            cap_cfg.cache_frames_cnt = 10  # framebuffer = 10
            cap_cfg.on_error = None  # use cap_set_callback_on_error to set cb
            cap_cfg.on_frame_rdy = None  # use cap_set_callback_on_frame_ready to set cb
            cap_cfg.en_save_replay = False  # True = save replay, False = not save
            cap_cfg.en_save_dist_u16 = False  # True to save dist stream for openni replay
            cap_cfg.en_save_gray_u16 = False  # True to save gray stream for openni replay
            cap_cfg.fname_replay = os.fsencode(
                "dm_replay.oni")  # set replay filename

            log.info("Set parameters ...")
            wparams = {
                dmcam.PARAM_INTG_TIME:
                dmcam.param_val_u(),
                dmcam.PARAM_FRAME_RATE:
                dmcam.param_val_u(),
                dmcam.PARAM_FRAME_FORMAT:
                dmcam.param_val_u(),
                # dmcam.PARAM_HDR_INTG_TIME: dmcam.param_val_u(),
                dmcam.PARAM_MOD_FREQ:
                dmcam.param_val_u()
            }

            wparams[dmcam.PARAM_INTG_TIME].intg.intg_us = 250
            # wparams[dmcam.PARAM_HDR_INTG_TIME].intg.intg_us = 1000
            wparams[dmcam.PARAM_FRAME_RATE].frame_rate.fps = 20
            wparams[dmcam.PARAM_FRAME_FORMAT].frame_format.format = 2
            wparams[dmcam.PARAM_MOD_FREQ].mod_freq = 12000000
            amp_min_val = dmcam.filter_args_u()
            amp_min_val.min_amp = 60
            intg_auto_arg = dmcam.filter_args_u()
            intg_auto_arg.sat_ration = 100  # 自动曝光设置的值

            if not dmcam.filter_enable(self.dev,
                                       dmcam.DMCAM_FILTER_ID_AMP, amp_min_val,
                                       sys.getsizeof(amp_min_val)):
                log.error("set amp to %d %% failed" % 0)
            if not dmcam.filter_disable(self.dev,
                                        dmcam.DMCAM_FILTER_ID_MEDIAN):
                log.error("disable Median Filter failed")
            # hdr = dmcam.filter_args_u()
            if not dmcam.filter_disable(self.dev, dmcam.DMCAM_FILTER_ID_HDR):
                log.error("set hdr failed")
            if not dmcam.filter_enable(
                    self.dev, dmcam.DMCAM_FILTER_ID_AUTO_INTG, intg_auto_arg,
                    sys.getsizeof(intg_auto_arg)):
                log.error("set auto intg failed")
                print("set auto intg failed")
            else:
                print("set auto intg")

            if not dmcam.param_batch_set(self.dev, wparams):
                log.error("set parameter failed")
            assert self.dev is not None
        if not self.status:
            log.info("Start capture ...")
            dmcam.cap_start(self.dev)
            self.status = True
Example #8
0
    dmcam.PARAM_INTG_TIME: dmcam.param_val_u(),
    dmcam.PARAM_HDR_INTG_TIME: dmcam.param_val_u(),
    dmcam.PARAM_FRAME_RATE: dmcam.param_val_u()
}
wparams[dmcam.PARAM_INTG_TIME].intg.intg_us = parms[0]  # 1400
wparams[dmcam.PARAM_HDR_INTG_TIME].intg.intg_us = parms[1]  # 1400
wparams[dmcam.PARAM_FRAME_RATE].frame_rate.fps = parms[2]  # 10

## Oprerate fileter
# DMCAM_FILTER_ID_AMP
amp_min_val = dmcam.filter_args_u()
amp_min_val.min_amp = parms[3]  # 40
if not dmcam.filter_enable(dev, dmcam.DMCAM_FILTER_ID_AMP, amp_min_val,
                           sys.getsizeof(amp_min_val)):
    print(" set amp to %d %% failed" % 0)
if not dmcam.filter_disable(dev, dmcam.DMCAM_FILTER_ID_MEDIAN):
    print(" disable median filter failed")
hdr = dmcam.filter_args_u()
if not dmcam.filter_enable(dev, dmcam.DMCAM_FILTER_ID_HDR, hdr,
                           sys.getsizeof(hdr)):
    print(" enable hdr filter failed")

ret = dmcam.param_batch_set(dev, wparams)
assert ret is True

# show batch param get
print("-> batch param parameters reading...\n")
params_to_read = list(range(dmcam.PARAM_ENUM_COUNT))
param_val = dmcam.param_batch_get(dev, params_to_read)
assert param_val is not None
print("dev_mode = %d" % param_val[dmcam.PARAM_DEV_MODE].dev_mode)