| import os |
| import cv2 |
| import numpy as np |
| import streamlit as st |
| from webcam import webcam |
| from images import image_transformations |
| from PIL import Image |
| title = st.empty() |
| title.header("Image Filter") |
| img_extensions = ["jpg","png","jpeg"] |
|
|
| def show_info(): |
| st.subheader(''' |
| Creator Jainam Jain: |
| ''') |
| st.markdown("### **Filters used:Cartoon") |
| st.write("") |
| st.sidebar.subheader("Choose the mode of operation: ") |
| selected_option = st.sidebar.selectbox("",["Select from below","Image Filters","Video Filters"]) |
|
|
| if selected_option == "Image Filters": |
| title.header("Image Filters") |
| img_operation_mode = st.selectbox("Upload Images from: ",["-- Select from below --","Local Storage","Take a snap from Webcam"]) |
|
|
| if img_operation_mode == "Local Storage": |
| uploaded_file = st.file_uploader("Upload images from local storage here",type = img_extensions) |
| if uploaded_file is not None: |
|
|
| image_byte = np.asarray(bytearray(uploaded_file.read()), dtype=np.uint8) |
| uploaded_file.seek(0) |
| img_bytes = uploaded_file.read() |
| decoded_img = cv2.imdecode(np.frombuffer(img_bytes, np.uint8), -1) |
| result = decoded_img |
| inp_img = cv2.imdecode(image_byte, 1) |
| filter = st.selectbox("Choose an Image filter: ",["Basic Image Editing","Thug Life","Green Screen","Moustaches",\ |
| "Devil-ie","Heart Eyes","John Cena XD","Cartoonie","Face Blur"],0) |
| image_transformations(result,inp_img,filter,uploaded_file.name.split(".")) |
|
|
| elif img_operation_mode == "Take a snap from Webcam": |
| result = webcam() |
| if result is None: |
| st.write("Waiting for capture...") |
| else: |
| st.write("Got an image from the webcam :P") |
| result = cv2.cvtColor(np.asarray(result,np.uint8),cv2.COLOR_RGB2BGR) |
|
|
| filter = st.selectbox("Choose an Image filter: ",["Basic Image Editing","Thug Life","Green Screen","Moustaches",\ |
| "Devil-ie","Heart Eyes","John Cena XD","Cartoonie","Face Blur"],0) |
| image_transformations(result,filter) |
|
|
| else: |
| st.sidebar.markdown(''' |
| This section contains filters to be applied on images. |
| |
| Images can be uploaded either from local storage (or) from your webcamera. |
| ''') |
| st.sidebar.markdown("Choose the source of image, from the drop list on right :point_right:") |
| st.sidebar.subheader("Tips for operating on Image Filters: ") |
| st.sidebar.markdown(''' |
| * Un edited pictures provide the best results. |
| * Link to download the edited pictures are at the bottom of the page |
| ''') |
|
|
|
|