Spaces:
Runtime error
Runtime error
import cv2 | |
import numpy as np | |
import streamlit as st | |
from PIL import Image | |
import streamlit_image_coordinates | |
def main(): | |
prev_val = None | |
st.title("PySeek") | |
st.sidebar.title("Upload Image") | |
# File uploader widget | |
uploaded_file = st.sidebar.file_uploader("Choose an image...", type=["jpg", "jpeg", "png"]) | |
new_img = uploaded_file.name if uploaded_file is not None else None | |
# print(uploaded_file.file_id) | |
if uploaded_file is not None: | |
if uploaded_file.file_id not in st.session_state: | |
st.session_state[uploaded_file.file_id] = [] | |
# Open and display the image | |
image = Image.open(uploaded_file) | |
img = cv2.cvtColor(np.array(image), cv2.COLOR_RGB2BGR) | |
# st.image(image, caption='Uploaded Image', use_column_width=True) | |
value = streamlit_image_coordinates.streamlit_image_coordinates( | |
# Image.open(uploaded_file), | |
img, | |
key="pil", | |
) | |
if value is not None and value != prev_val: | |
prev_val = value | |
st.session_state[uploaded_file.file_id].append((value['x'], value['y'])) | |
if uploaded_file.file_id in st.session_state: | |
for val in st.session_state[uploaded_file.file_id]: | |
st.write(f"x: {val[0]}, y: {val[1]}") | |
if __name__ == "__main__": | |
main() | |