GitXplorerGitXplorer
a

edge-detectors

public
22 stars
9 forks
0 issues

Commits

List of commits on branch master.
Verified
64a93726fa05fe4495cd9386096679ce7a40c5d3

Add CLI arguments and improve code formatting

aadl1995 committed 5 years ago
Verified
3c6f1ac48f7b129a4976cf0a85410782479d1f91

Make formatting improvements

aadl1995 committed 7 years ago
Unverified
06ef438958ff95ba3e9b32d990c2e62ae5164350

Added canny result

aadl1995 committed 8 years ago
Unverified
3d4c51764fffeb80b591b5a7d9be2e7049e46240

Added Marr Hildreth section

aadl1995 committed 8 years ago
Unverified
b5f7201d455b8eff6a64c43be7dd0fea97859d22

Update Readme.md

aadl1995 committed 8 years ago
Unverified
a6c9ce020dce51c53bbe386a83a97615d6a3bdf1

Added result images

aadl1995 committed 8 years ago

README

The README file for this repository.

An implementation of two famous edge detectors

1. Canny edge detector

Description

The Canny edge detector uses a multi-stage algorithm to detect edges in images. It was developed by John F. Canny in 1986. Canny also produced a computational theory of edge detection explaining how the technique works.

Steps Involved

  • Apply Gaussian filter to smooth out the image
  • Find intensity gradients from the given image
  • Apply non-maximum suppression to remove spurious response to edge detection
  • Apply double threshold to determine potential edges
  • Track edge by hysteresis: finalize the detection of edges by suppressing all the other edges that are weak and not connected to strong edges (not done)

Motivation

John Canny's paper on "A Computational Approach to Edge Detection".

Result

canny result

How to run


This program depends on the following packages:

  • Matplotlib
  • Skimage
  • NumPy
  • mpl_toolkits
  • argparse

Clone this repository with:

git clone https://github.com/adl1995/edge-detectors.git

Execute the script with:

python canny-edge.py --input <input image path> --output <output image path> --sigma <optional> --th1 <optional> --th2 <optional>

2. Marr Hildreth

Description

The Marr-Hildreth algorithm finds edges in digital images where there are strong and rapid variations in the image brightness. The Marr–Hildreth edge detection method operates by convolving the image with the Laplacian of the Gaussian function, or, as a fast approximation by Difference of Gaussians (DoG). Then, zero crossings are detected in the filtered result to obtain the edges.

Steps Involved

  • Apply Gaussian filter to smooth out the image
  • Find zero crossings

Motivation

Hildreth's paper on "Theory of edge detection".

Result

marr hildreth result

How to run

This program requires Python 3.6+ and depends on the following packages:

  • Matplotlib
  • Skimage
  • NumPy
  • argparse
  • mpl_toolkits

Execute the script with:

python marr-hildreth-edge.py --input <input image path> --output <output image path> --sigma <optional>