Spaces:
Runtime error
Runtime error
""" | |
PROJECT: GaussianHighPassFilter | |
FILENAME: app.py | |
AUTHOR: David NAISSE | |
DATE: August 22, 2022 | |
DESCRIPTION: App script. | |
""" | |
import numpy as np | |
import streamlit as st | |
from PIL import Image | |
from scipy import ndimage | |
# Page config | |
st.set_page_config(layout="centered") | |
st.title("High Pass Filter for Images") | |
st.write('High pass filter applied to images. ') | |
left, right = st.columns([3, 2]) | |
# Uploader | |
img_or_video = left.file_uploader("Upload an image: ", type=['.jpg', '.png', '.jpeg']) | |
# Display example selection | |
size = int(right.number_input('Filter size (ex: 3x3): ', min_value=3, max_value=500, value=3, help='Filter size. ')) | |
# Init. empty texts | |
filter_text = right.empty() | |
size_text = right.empty() | |
# Default image or uploaded one | |
original = Image.open("resource/example.jpg" if img_or_video is None else img_or_video) | |
image = np.array(original) | |
gray = np.array(original.convert('L')) | |
# Apply high pass | |
lowpass = ndimage.gaussian_filter(gray, size) | |
gauss_highpass = gray - lowpass | |
# Display original | |
st.image(1-gauss_highpass, caption='High Pass') | |
# Update elements | |
filter_text.write(f'Using filter of size {size}x{size}. ') | |
size_text.write(f'Image size: {gauss_highpass.shape}') | |
# Split UI in 2 | |
left2, right2 = st.columns([5, 5]) | |
# Display img | |
left2.image(image, caption='Original') | |
right2.image(lowpass, caption='Low Pass') | |