# Edges

## Changes from f393fe798807b54f660e478d2ffc8c76df70415d to f680a6e5868e2543549eccb094f0daafd46f06ad

---
title: Edge Detection
categories: session
---

**Date** 29 September 2021

**Briefing** [Edge Lecture]()

[Canny Edge Detection in OpenCV](https://docs.opencv.org/4.x/da/d22/tutorial_py_canny.html)

# Exercises

## Python API

This is based on Ma (2004) Exercise 4.9, which is written for Matlab.

### The Canny

1.  Find a test image.
2.  Test the Canny edge detector in OpenCV.
See the [tutorial](https://docs.opencv.org/4.x/da/d22/tutorial_py_canny.html)
for an example.
What kind of data does it generate?  What do the data look like?
3.  Experiment with different thresholds and different window sizes
(apertures).
See the [docs](https://docs.opencv.org/3.4/dd/d1a/group__imgproc__feature.html#ga04723e007ed888ddf11d9ba04e2232de) for overview of the parameters
for Canny.

It is not difficult to implement your own Canny edge detector.
The exercise would be very similar to the Harris corner detector,

### Connected Components

The edge detector gives a binary image.
The edge detector gives a binary image.  How can you find collections
of pixels forming edges?

You can either,

1. implement your own connected components function, using the ideas
from the [briefing](Edge Lecture), or
2. test the ConnectedComponents function in OpenCV.

Visualise the components you find, for instance by using different
colours  Do they correspond to the objects *you* see in the image?

### Line fitting

1.  Implement a simple line fitter using the ideas from the
[briefing](Edge Lecture).
2.  Can you identify straight lines among the components?
3.  Calculate the angle $\theta$ and the distance $\rho$ from the
origin for each component.

### Hough

**TODO**

## Project

1.  Can you use edge detection in your tracker project?
2.  Is it possible to match the edges to the object you want to track?
3.  Can the multiple connected components be used to give an idea about
different objects in the scene?

Use the rest of the time to improve the tracker.