Contour Finding
We are finally ready to start talking about contours. To start
with, we should define exactly what a contour is. A contour is a list of points that
represent, in one way or another, a curve in an image. This representation can be different
depending on the circumstance at hand. There are many ways to represent a curve. Contours
are represented in OpenCV by sequences in which every entry in the sequence encodes
information about the location of the next point on the curve. We will dig into the details
of such sequences in a moment, but for now just keep in mind that a contour is represented
in OpenCV by a CvSeq
sequence that is, one way or
another, a sequence of points.
The function cvFindContours()
computes contours from
binary images. It can take images created by cvCanny()
,
which have edge pixels in them, or images created by functions like cvThreshold()
or cvAdaptiveThreshold()
, in
which the edges are implicit as boundaries between positive and negative regions.[108]
Before getting to the function prototype, it is worth taking a moment to understand
exactly what a contour is. Along the way, we will encounter the concept of a contour tree,
which is important for understanding how cvFindContours()
(retrieval methods derive from Suzuki [Suzuki85]) will communicate its results to us.
Take a moment to look at Figure 8-2,
which depicts the functionality of cvFindContours()
. The upper part of the figure shows a test image containing a number of white regions (labeled A ...
Get Learning OpenCV now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.