Giter Site home page Giter Site logo

akramom606 / canny-edge-detector-gui Goto Github PK

View Code? Open in Web Editor NEW
2.0 1.0 0.0 8.3 MB

This user-friendly tool simplifies Canny edge detection by offering real-time visualization and customizable parameters. Fine-tune details like Gaussian blur, thresholds, and even weak pixel value adjustment to achieve optimal results for your specific images.

License: MIT License

Python 100.00%
canny-edge-detection canny-edge-detector customtkinter customtkinterprojects edge-detection gaussian-filter graphical-user-interface gui python

canny-edge-detector-gui's Introduction

Canny Edge Detection GUI with CustomTkinter

image

image

image

Description

This GUI application simplifies Canny edge detection by offering a visual interface for:

  • Image Input: Select and load an image for edge detection. Supported image formats (JPG, PNG) will be listed.
  • Parameter Adjustment: Fine-tune the Canny edge detection algorithm's parameters, including:
    • Gaussian Blur: Control the amount of Gaussian blurring applied before edge detection to reduce noise.
    • Thresholds: Set the lower and upper thresholds for edge detection strength.
    • Weak Pixel: This advanced parameter allows you to adjust the threshold for considering a weak edge during hysteresis tracking.
  • Real-time Visualization: Observe the image processing steps within the GUI, including:
    • Input Image: The original image you selected.
    • Grayscale Conversion: Witness the conversion of the color image to grayscale.
    • Gaussian Filter: Observe the application of the Gaussian filter to reduce noise.
    • Gradient Calculation: See the calculation of image gradients to identify potential edges.
    • Non-Maximum Suppression: Follow the suppression of weak edges.
    • Double Threshold: Witness the application of two thresholds to refine detected edges.
    • Hysteresis: Observe the final step where weak edges connected to strong edges are preserved.

Key Features

  • User-friendly GUI: Effortless interaction with Canny edge detection parameters.
  • Interactive Image Processing: Visualize the image processing steps for better understanding.
  • Customizable Parameters: Fine-tune the detection process for optimal results on various images.

Installation

Prerequisites and Dependencies:

  • Python (assumed to be installed)
  • CustomTkinter
  • Pillow
  • Matplotlib
  • OpenCV
  • NumPy
  • Scipy

Running the Application

  1. Clone this repository:
git clone https://github.com/AkramOM606/Canny-Edge-Detector-GUI.git
  1. Install the additional dependencies if not present:
pip install -r requirements.txt
  1. Launch the application using Python
python main.py

Usage

The application's GUI guides you through the image selection, parameter adjustment, and output options. Simply:

  1. Adjust the Canny edge detection parameters (Gaussian blur, Thresholds, Weak Pixel) to your desired levels.
  2. Click the "Input an Image" button and select the image you want to process.
  3. Click the "Arrow Next Button" button to go through and visualize each step of the Canny Edge Detection Algorithm.

Note: You can apply a specific step as many times as you want using the left steps bar!

Contributing

We welcome contributions to enhance this project! Feel free to:

  1. Fork the repository.
  2. Create a new branch for your improvements.
  3. Make your changes and commit them.
  4. Open a pull request to propose your contributions.

We'll review your pull request and provide feedback promptly.

License

This project is licensed under the MIT License: https://opensource.org/licenses/MIT (see LICENSE.md for details).

canny-edge-detector-gui's People

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.