"All the constants used in this repo." | |
from pathlib import Path | |
import numpy as np | |
from PIL import Image | |
# The repository's directory | |
REPO_DIR = Path(__file__).parent | |
# The repository's main directories | |
FILTERS_PATH = REPO_DIR / "filters" | |
KEYS_PATH = REPO_DIR / ".fhe_keys" | |
WRONG_KEYS_PATH = REPO_DIR / ".wrong_keys" | |
CLIENT_TMP_PATH = REPO_DIR / "client_tmp" | |
SERVER_TMP_PATH = REPO_DIR / "server_tmp" | |
# Create the directories if it does not exist yet | |
KEYS_PATH.mkdir(exist_ok=True) | |
WRONG_KEYS_PATH.mkdir(exist_ok=True) | |
CLIENT_TMP_PATH.mkdir(exist_ok=True) | |
SERVER_TMP_PATH.mkdir(exist_ok=True) | |
# All the filters currently available in the app | |
AVAILABLE_FILTERS = [ | |
"identity", | |
"inverted", | |
"rotate", | |
"black and white", | |
"blur", | |
"sharpen", | |
"ridge detection", | |
] | |
# The input image's shape. Images with larger input shapes will be cropped and/or resized to this | |
INPUT_SHAPE = (100, 100) | |
# Generate random images as an inputset for compilation | |
np.random.seed(42) | |
INPUTSET = tuple( | |
np.random.randint(0, 255, size=(INPUT_SHAPE + (3,)), dtype=np.int64) for _ in range(10) | |
) | |
def load_image(image_path): | |
image = Image.open(image_path).convert("RGB").resize(INPUT_SHAPE) | |
image = np.asarray(image, dtype="int64") | |
return image | |
_INPUTSET_DIR = REPO_DIR / "input_examples" | |
# List of all image examples suggested in the app | |
EXAMPLES = [str(image) for image in _INPUTSET_DIR.glob("**/*")] | |
SERVER_URL = "http://localhost:8000/" | |