46 lines
938 B
Python
46 lines
938 B
Python
import numpy as np
|
|
|
|
|
|
def clean_bounds(xl, yl, xu, yu, shape):
|
|
if xl < 0:
|
|
xl = 0
|
|
if yl < 0:
|
|
yl = 0
|
|
|
|
if xu > shape[0]:
|
|
xu = shape[0]
|
|
if yu > shape[1]:
|
|
yu = shape[1]
|
|
|
|
return xl, yl, xu, yu
|
|
|
|
|
|
def clean_bounds_offset(x: int, y: int, offset: int, shape: tuple[int, int]):
|
|
xl = x - offset
|
|
xu = x + offset + 1
|
|
yl = y - offset
|
|
yu = y + offset + 1
|
|
|
|
# if isinstance(x, np.ndarray):
|
|
# xl[xl < 0] = 0
|
|
# xu[xu > shape[0]] = shape[0]
|
|
# xl = xl.astype(np.int64)
|
|
# xu = xu.astype(np.int64)
|
|
# else:
|
|
if xl < 0:
|
|
xl = 0
|
|
if xu > shape[0]:
|
|
xu = shape[0]
|
|
|
|
# if isinstance(y, np.ndarray):
|
|
# yl[yl < 0] = 0
|
|
# yu[yu > shape[1]] = shape[1]
|
|
# yl = yl.astype(np.int64)
|
|
# yu = yu.astype(np.int64)
|
|
# else:
|
|
if yl < 0:
|
|
yl = 0
|
|
if yu > shape[1]:
|
|
yu = shape[1]
|
|
return xl, yl, xu, yu
|