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
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
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