COP2034 Final Project
Spring 2023
Streamlit Image Editing App
Project Description:
In this project, you will create a web application using Streamlit that allows users to upload a
photo and apply various filters to it using image processing functions from OpenCV. The goal is
to create an engaging and interactive web app that is easy to use and allows users to implement
image processing techniques with a click of a button. \
Streamlit is an open-source Python library that is used to create web apps in just few minutes all
using Python. Since its launch, Streamlit has been used to create custom web apps for machine
learning and data science use cases making it easy for developers to showcase their work and
create interactive demos to breakdown complex concepts. In your project you will learn how to
use streamlit to create a photo editing web app.
Instructions:
1. Setting up the Environment:
• Install Streamlit, OpenCV, Pillow, and Numpy libraries.
• Create a new Streamlit project and set up a basic user interface with an upload button
and space for displaying images.
2. Uploading the Image:
• Use the Streamlit file uploader to allow users to upload images to the app.
• Verify that the uploaded file is an image and not some other type of file (png, jpg,
jpeg files)
3. Applying Filters (implement at least 5 filters!)
• Create radio buttons to allow users to choose the filter they want to apply to the
image.
• Write functions that apply the filters using OpenCV.
• Display both the original and filtered images side by side next to each other so that
users can see the changes made by the filters.
4. Adjusting Filter Values:
• For filters that depend on intensity levels or thresholds, create a slider bar that allows
the user to adjust the values with ease.
• This will enable users to fine-tune the filter settings and obtain the best result
possible.
5. Downloading Filtered Images:
• Include a download button that will allow users to download the filtered image to
their device.
• Ensure that the image is saved in a suitable format such as JPEG or PNG.
Save image with this name “FilterName_OriginalName”
Downloaded images are saved to output folder in your workspace (must create this
folder beforehand).
6. Testing:
• Test the app thoroughly to ensure that it works as expected.
•
•
Submission Instructions:
You are required to submit one folder as a compressed folder (zipped) that contains the
following.
•
•
•
•
•
First_Last__COP2034_app.py (this file will be your main file for running streamlit app)
filters.py (This file will contain all the filters you wish to have in your app)
ReadMe.md (markdown file that contains a description of your project – more
instructions will follow on readme files)
Output folder (containing downloaded images of all filters you have in the project)
Images folder (contains sample images for testing your app)
App Design and Functionality:
App Main Page (Once you run the app)
• App Name and App description in the outer left column.
• Full Name, Project and Due Date in the center.
• FAU owl logo on the right column.
• File uploader to upload an image.
After Uploading an Image
•
•
•
Display filter options as radio buttons on the outer left column.
For filters that require certain values as intensities add a slidebar that allows user to adjust
intensity values.
Add Download button that allows user to download the filtered image.
Overall, this project is a great opportunity for you to showcase your programming skills and
creativity while learning about image processing and filter creation. Have fun!