ModuMLTECH's picture
Upload 2 files
ff5fd92 verified
import streamlit as st
import cv2
import numpy as np
from PIL import Image
def main():
st.title("Webcam Grayscale Filter")
st.write("This app applies a grayscale filter to your webcam feed.")
# Add a placeholder for the webcam feed
video_placeholder = st.empty()
# Add a stop button
stop_button = st.button("Stop")
# Start the webcam
cap = cv2.VideoCapture(0)
# Check if the webcam is opened correctly
if not cap.isOpened():
st.error("Cannot open webcam. Please check your camera connection.")
return
while cap.isOpened() and not stop_button:
# Read a frame from the webcam
ret, frame = cap.read()
if not ret:
st.error("Failed to capture image from webcam.")
break
# Convert the frame to grayscale
gray_frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
# Convert grayscale frame to RGB for Streamlit display
# (Streamlit expects RGB images)
gray_rgb = cv2.cvtColor(gray_frame, cv2.COLOR_GRAY2RGB)
# Display the frame in the Streamlit app
video_placeholder.image(gray_rgb, channels="RGB", use_column_width=True)
# Add a small delay
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# Release resources
cap.release()
cv2.destroyAllWindows()
st.write("Webcam stopped")
if __name__ == "__main__":
main()