Book Image

Raspberry Pi Computer Vision Programming - Second Edition

By : Ashwin Pajankar
5 (1)
Book Image

Raspberry Pi Computer Vision Programming - Second Edition

5 (1)
By: Ashwin Pajankar

Overview of this book

Raspberry Pi is one of the popular single-board computers of our generation. All the major image processing and computer vision algorithms and operations can be implemented easily with OpenCV on Raspberry Pi. This updated second edition is packed with cutting-edge examples and new topics, and covers the latest versions of key technologies such as Python 3, Raspberry Pi, and OpenCV. This book will equip you with the skills required to successfully design and implement your own OpenCV, Raspberry Pi, and Python-based computer vision projects. At the start, you'll learn the basics of Python 3, and the fundamentals of single-board computers and NumPy. Next, you'll discover how to install OpenCV 4 for Python 3 on Raspberry Pi, before covering major techniques and algorithms in image processing, manipulation, and computer vision. By working through the steps in each chapter, you'll understand essential OpenCV features. Later sections will take you through creating graphical user interface (GUI) apps with GPIO and OpenCV. You'll also learn to use the new computer vision library, Mahotas, to perform various image processing operations. Finally, you'll explore the Jupyter Notebook and how to set up a Windows computer and Ubuntu for computer vision. By the end of this book, you'll be able to confidently build and deploy computer vision apps.
Table of Contents (15 chapters)

Working with the Canny edge detector

The Canny edge detection algorithm was developed by John Canny. Canny's algorithm heavily uses the concept of high-pass filters. It has multiple steps.

Note:

You can read more about the Canny edge detection algorithm at http://homepages.inf.ed.ac.uk/rbf/HIPR2/canny.htm.

OpenCV has the cv2.Canny() function, which offers Canny's algorithm. The following are the steps of the algorithm:

  1. A Gaussian kernel with a size of 5 x 5 pixels is applied to the input image to remove any noise.
  2. Then, we compute the gradient of the intensity of the filtered image. We can use the L1 or the L2 norm for this step.
  3. We then apply non-maximum suppression and identify the candidates for the possible sets of edges.
  4. The final step is the operation of hysteresis. We finalize the edges depending on the thresholds passed to the images.

    Note:

    You can read more about the L1 and L2 norms and non-maximum suppression at http://www.chioka.in/differences...