Skip to content

Commit

Permalink
fix(api): skip gradient blending when tiles do not overlap
Browse files Browse the repository at this point in the history
  • Loading branch information
ssube committed Jun 9, 2023
1 parent f4d944a commit 732b07e
Showing 1 changed file with 11 additions and 10 deletions.
21 changes: 11 additions & 10 deletions api/onnx_web/chain/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,19 +82,20 @@ def blend_tiles(
for left, top, tile_image in tiles:
# histogram equalization
equalized = np.array(tile_image).astype(np.float32)
mask = np.ones_like(equalized[:, :, 0])

# gradient blending
points = [0, adj_tile * scale, (tile - adj_tile) * scale, (tile * scale) - 1]
grad_x, grad_y = get_tile_grads(left, top, adj_tile, width, height)
logger.trace("tile gradients: %s, %s, %s", points, grad_x, grad_y)
if adj_tile < tile:
# gradient blending
points = [0, adj_tile * scale, (tile - adj_tile) * scale, (tile * scale) - 1]
grad_x, grad_y = get_tile_grads(left, top, adj_tile, width, height)
logger.trace("tile gradients: %s, %s, %s", points, grad_x, grad_y)

mult_x = [np.interp(i, points, grad_x) for i in range(tile * scale)]
mult_y = [np.interp(i, points, grad_y) for i in range(tile * scale)]
mult_x = [np.interp(i, points, grad_x) for i in range(tile * scale)]
mult_y = [np.interp(i, points, grad_y) for i in range(tile * scale)]

mask = np.ones_like(equalized[:, :, 0]) * mult_x
mask = (mask.T * mult_y).T
for c in range(3):
equalized[:, :, c] = equalized[:, :, c] * mask
mask = ((mask * mult_x).T * mult_y).T
for c in range(3):
equalized[:, :, c] = equalized[:, :, c] * mask

scaled_top = top * scale
scaled_left = left * scale
Expand Down

0 comments on commit 732b07e

Please sign in to comment.