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') | |