OpenCV Function Explorer is a Python application that allows users to explore and apply various OpenCV functions on images and videos. The application supports live video processing, Video Processing, Image Display and YOLO-based object detection.
- Load and apply YOLO models for object detection.
- Select and apply different image filters.
- Process and display video files or live video feeds.
- GUI with Tkinter for user-friendly interaction.
-
Clone the repository:
git clone https://github.com/muhammadmustafaisb/Object-Detection-Using-Yolo cd Object-Detection-Using-Yolo -
Create a virtual environment and activate it (optional but recommended):
python -m venv venv # On Windows venv\Scripts\activate # On macOS/Linux source venv/bin/activate
-
Install the required dependencies:
pip install opencv-python numpy pillow
-
Run the application:
python main.py
- Download YOLO Files:
- YOLO v3 Configuration File: yolov3.cfg
- YOLO v3 Class Names File: coco.names
- YOLO v3 Weights File: yolov3.weights
- Launch the application.
- Load and Process Images:
- Click on "Select Image" to load an image.
- Choose the desired filter by clicking on the corresponding button in the options menu.
- Optionally, enable object detection by clicking "Detect Objects".
- Load and Process Videos:
- Click on "Select Video" to load a video file.
- The video will start processing with the selected filter and YOLO object detection.
- Live Video:
- Click on "Live Video" to start a live feed from your webcam. You can apply filters and perform object detection in real-time.
- Additional Options:
- Click "Reset" to reset the image to its original state.
- Click "Reset Filters" to remove applied filters.
- Python 3.12
- OpenCV
- NumPy
- Pillow
- Tkinter
YOLOModel: Handles loading and applying the YOLO object detection model. ImageProcessor: Provides various image processing functions and applies filters to images. VideoProcessor: Manages video loading, processing, and live video capture. MainApp: The main Tkinter application class that integrates all functionalities and provides the GUI.
Feel free to fork the repository and submit pull requests with improvements or bug fixes. Please make sure to test your changes and follow the existing code style.