This tutorial will teach you, with examples, two OpenCV techniques inpython to deal with edge detection.
So you want to build a super cool computer vision tool? You will need to isolate objects’ or persons’ contours to simplify your video.
But first, let’s begin this tutorial with the basics. This tutorial begins with how to load, modify and display a video with OpenCV 4.0 in Python.
Below is the result this example yields using an excerpt of a French TV show:
Let’s jump to the extraction of the edges in the scene.
The most famous tool to perform this task in OpenCV is the Canny filter. It is based on:
the gradient of the image (the difference between two adjacent pixels)
a hysteresis filtering.
The hysteresis enables the selection of lines of adjacent pixels contrasting with their neighbors.
For the full sequence of steps of the Canny filter, please refer to the image below. Also, feel free to consult this very comprehensive description of the steps of the Canny Filter.
Check out the example below to check how the Canny Filter is used in OpenCV:
The Canny filter thresholds can be tuned to catch only the strongest edges and get cleaner contours. The higher the thresholds, the cleaner the edges.
Rough threshold values are most of the time enough to do the job. This Quora thread will help you understand How to set the thresholds in canny edge detection?
Notice how the plant in the background or the left man’s tie both look messy? A nice trick to smooth out the image without blurring the edges is called bilateral filtering. Take a look at the job the OpenCV
bilateralFilter function does:
What if we don’t care about the tables and walls in the background? The way this tutorial will present you to extract moving objects contours is the background subtraction.
It dilates the moving objects
Then shrinks them back.
It joins together the white patches outputted by the background subtractor.
The moving part of the image is then used as a mask. It crops the edges computed with canny, keeping only the moving part.
The bad video quality makes the mask on the moving objects jumps a bit, and we need more smoothing and filtering. Still, with OpenCV we can achieve:
a perfect still image edge detection
a satisfactory moving image edge detection
in a matter of minutes.
Thank you for going through this OpenCV tutorial.
A progressive Web application with Vue JS, Webpack & Material Design [Part 1]
This tutorial aims to create a basic but complete progressive web application with VueJS and Webpack, from scratch.
Automate AWS Tasks Thanks to Airflow Hooks
This article is a step-by-step tutorial that will show you how to upload a file to an S3 bucket thanks to an Airflow ETL (Extract Transform Load) pipeline
Basics in R Programming
You are about to begin a project on R? Before you watch any tutorial, read these basic standards.