import gradio as gr from ultralytics import YOLO import cv2 import numpy as np model = YOLO("foduucom/stockmarket-pattern-detection-yolov8") def detect_pattern(image): results = model(image) if results and results[0].plot: return cv2.cvtColor(results[0].plot(), cv2.COLOR_RGB2BGR) return image with gr.Blocks(theme=gr.themes.Base()) as app: gr.Markdown("# Stock Market Pattern Detection (YOLOv8)") with gr.Tabs(): with gr.Tab("Upload Image"): image_input = gr.Image(type="numpy") image_output = gr.Image() detect_btn = gr.Button("Detect Pattern") detect_btn.click(fn=detect_pattern, inputs=image_input, outputs=image_output) with gr.Tab("Real-time (Camera)"): webcam_input = gr.Image(source="webcam", streaming=True) webcam_output = gr.Image() webcam_input.change(fn=detect_pattern, inputs=webcam_input, outputs=webcam_output) app.launch()