Esempio n. 1
0
def add_result_to_cv( data, result, cv, LF_crosshair, mask_sum, bs_x, bs_y, bxx, dc ):

  """ note: numpy arrays are passed by reference ... I think
  """
  H_mask = hp.eval_res['h_mask']
  W_mask = hp.eval_res['w_mask']
  m = hp.eval_res['m']
  print( 'x', end='', flush=True )
  by = result[1]['py']
  sv = result[0]['cv']
  if len(sv.shape) !=4:
    sv_v = result[0][ 'cv_v']
    sv_h = result[0]['cv_h']

  mask = im.get_mask(H_mask,W_mask,m)
  mask3d = np.expand_dims(mask, axis = 2)
  mask3d = np.tile(mask3d, (1, 1, 3))
  maskLF = np.expand_dims(mask3d, axis = 3)
  maskLF = np.transpose(np.tile(maskLF, (1, 1, 1,9)),[3,0,1,2])

  # cv data is in the center of the result stack
  # lazy, hardcoded the current fixed size
  p = H_mask//2 - dc['SY']//2
  q = H_mask//2 + dc['SY']//2

  H_patch = dc['H']
  W_patch = dc['W']

  for bx in range(bxx):
    px = bs_x * bx + dc['SX']
    py = bs_y * by + dc['SY']
    if len(sv.shape) == 4:
      cv[py-p:py+q , px-p:px+q, :] = np.add(cv[py-p:py+q , px-p:px+q, : ],
      np.multiply(sv[bx, H_patch//2 - H_mask//2 : H_patch//2 + H_mask//2 ,H_patch//2 - H_mask//2 : H_patch//2 + H_mask//2, :], mask3d))
    else:
      cv[py - p:py + q, px - p:px + q, :] = np.add(cv[py - p:py + q, px - p:px + q, :], np.multiply(sv[bx, 4,
                                                                                                    H_patch // 2 - H_mask // 2: H_patch // 2 + H_mask // 2,
                                                                                                    H_patch // 2 - H_mask // 2: H_patch // 2 + H_mask // 2,
                                                                                                    :], mask3d))

      LF_crosshair[0, :, py - p:py + q, px - p:px + q, :] = np.add(LF_crosshair[0, :, py - p:py + q, px - p:px + q, :]
                                                                   , np.multiply(
          sv_v[bx, :, H_patch // 2 - H_mask // 2: H_patch // 2 + H_mask // 2,
          H_patch // 2 - H_mask // 2: H_patch // 2 + H_mask // 2, :], maskLF))

      LF_crosshair[1, :, py - p:py + q, px - p:px + q, :] = np.add(LF_crosshair[1, :, py - p:py + q, px - p:px + q, :]
                                                                   , np.multiply(
          sv_h[bx, :, H_patch // 2 - H_mask // 2: H_patch // 2 + H_mask // 2,
          H_patch // 2 - H_mask // 2: H_patch // 2 + H_mask // 2, :], maskLF))

    mask_sum[py-p:py+q , px-p:px+q] = mask_sum[py-p:py+q , px-p:px+q] + mask
Esempio n. 2
0
def add_result_to_cv(data, result, cv_interp, cv_raw, mask_sum, bs_x, bs_y,
                     bxx):
    """ note: numpy arrays are passed by reference ... I think
  """
    H_mask = hp.eval_res['h_mask']
    W_mask = hp.eval_res['w_mask']
    m = hp.eval_res['m']
    print('x', end='', flush=True)
    by = result[1]['py']
    sv = result[0]['cv']

    mask = im.get_mask(H_mask, W_mask, m)
    mask3d = np.expand_dims(mask, axis=2)
    num_channels = cv_interp.shape[-1]
    mask3d = np.tile(mask3d, (1, 1, num_channels))

    # cv data is in the center of the result stack
    # lazy, hardcoded the current fixed size
    p = H_mask // 2 - hp.sy_HR // 2
    q = H_mask // 2 + hp.sy_HR // 2

    H_patch = hp.H_HR
    W_patch = hp.W_HR

    for bx in range(bxx):
        px = bs_x * bx + hp.sx_HR
        py = bs_y * by + hp.sy_HR
        cv_interp[py - p:py + q, px - p:px + q, :] = np.add(
            cv_interp[py - p:py + q, px - p:px + q, :],
            np.multiply(
                sv[bx, H_patch // 2 - H_mask // 2:H_patch // 2 + H_mask // 2,
                   H_patch // 2 - H_mask // 2:H_patch // 2 + H_mask // 2, :],
                mask3d))
        cv_raw[py:py + 32, px:px + 32, :] = sv[bx, 32:64, 32:64, :]

        mask_sum[py - p:py + q,
                 px - p:px + q] = mask_sum[py - p:py + q, px - p:px + q] + mask
Esempio n. 3
0
def add_result_to_cv(data, result, LF_crosshair, mask_sum, bs_x, bs_y, bxx,
                     scale, colorspace):
    """ note: numpy arrays are passed by reference ... I think
  """
    H_mask = hp.eval_res['h_mask_' + scale]
    W_mask = hp.eval_res['w_mask_' + scale]

    m = hp.eval_res['m_' + scale]

    print('x', end='', flush=True)
    by = result[1]['py']
    sv_v = result[0]['SR_v_' + scale]
    sv_h = result[0]['SR_h_' + scale]
    H_patch = sv_v.shape[-2]

    # if colorspace == 'YCBCR':
    #   sv_v = np.clip(sv_v, 16.0 / 255.0, 240.0 / 255.0)
    #   sv_v[...,0] = np.clip(sv_v[...,0], 16.0 / 255.0, 235.0 / 255.0)
    #   sv_h = np.clip(sv_h, 16.0 / 255.0, 240.0 / 255.0)
    #   sv_h[...,0] = np.clip(sv_h[...,0], 16.0 / 255.0, 235.0 / 255.0)
    # else:
    #   sv_v = np.clip(sv_v,0,1)
    #   sv_h = np.clip(sv_h, 0, 1)
    # sv_v = np.clip(sv_v,0,1)
    # sv_h = np.clip(sv_h, 0, 1)

    num_channels = LF_crosshair.shape[-1]

    mask = im.get_mask(H_mask, W_mask, m)
    mask3d = np.expand_dims(mask, axis=2)
    mask3d = np.tile(mask3d, (1, 1, num_channels))
    maskLF = np.expand_dims(mask3d, axis=3)
    maskLF = np.transpose(np.tile(maskLF, (1, 1, 1, 9)), [3, 0, 1, 2])

    # cv data is in the center of the result stack
    # lazy, hardcoded the current fixed size
    if scale == 's2':
        p = H_mask // 2 - hp.sy_s2 // 2
        q = H_mask // 2 + hp.sy_s2 // 2
        sx = hp.sx_s2
        sy = hp.sy_s2
    elif scale == 's4':
        p = H_mask // 2 - hp.sy_HR // 2
        q = H_mask // 2 + hp.sy_HR // 2
        sx = hp.sx_HR
        sy = hp.sy_HR

    for bx in range(bxx):
        px = bs_x * bx + sx
        py = bs_y * by + sy

        LF_crosshair[0, :, py - p:py + q, px - p:px + q, :] = np.add(
            LF_crosshair[0, :, py - p:py + q, px - p:px + q, :],
            np.multiply(
                sv_v[bx, :,
                     H_patch // 2 - H_mask // 2:H_patch // 2 + H_mask // 2,
                     H_patch // 2 - H_mask // 2:H_patch // 2 + H_mask // 2, :],
                maskLF))

        LF_crosshair[1, :, py - p:py + q, px - p:px + q, :] = np.add(
            LF_crosshair[1, :, py - p:py + q, px - p:px + q, :],
            np.multiply(
                sv_h[bx, :,
                     H_patch // 2 - H_mask // 2:H_patch // 2 + H_mask // 2,
                     H_patch // 2 - H_mask // 2:H_patch // 2 + H_mask // 2, :],
                maskLF))

        mask_sum[py - p:py + q,
                 px - p:px + q] = mask_sum[py - p:py + q, px - p:px + q] + mask