def objectRemoval(image, remove_mask=None, preserve_mask=None, nn=0, nm=0, rmask=False, pmask=False): img = image.copy() n,m = image.shape[:2] if rmask: nn, nm = Basics.maskSize(remove_mask) if nn < nm: #Eliminamos las filas print("\nNumero de seams horizontales a eliminar: ", nn) #Rotamos img = np.rot90(img, k=-1, axes=(0, 1)) if rmask: remove_mask = np.rot90(remove_mask, k=-1, axes=(0, 1)) if pmask: preserve_mask = np.rot90(preserve_mask, k=-1, axes=(0, 1)) #Eliminamos las horizontales que sobren for i in range(abs(nn)): print("Eliminamos ", i) a, b, path = Basics.verticalSeam(img, energias.forwardEnergy, remove_mask, preserve_mask, rmask, pmask) img = Basics.removeSeam(img, path) if rmask: remove_mask = Basics.removeSeam(remove_mask, path) if pmask: preserve_mask = Basics.removeSeam(preserve_mask, path) #Rotamos return np.rot90(img, k=1, axes=(0, 1)) # return img else: print("\nNumero de seams verticales a eliminar: ", abs(nm)) #Eliminamos las verticales que sobren for i in range(abs(nm)): print("Eliminamos", i) a, b, path = Basics.verticalSeam(img, energias.forwardEnergy, remove_mask, preserve_mask, rmask, pmask) img = Basics.removeSeam(img, path) if rmask: remove_mask = Basics.removeSeam(remove_mask, path) if pmask: preserve_mask = Basics.removeSeam(preserve_mask, path) return img