Contour extraction operations can be considered halfway between feature extraction and segmentation, since a binary image is produced in which image contours are separated from other homogeneous regions. Contours will typically correspond to object boundaries.
While a number of simple methods detect edges in images (for example, the Sobel and Laplace filters), the Canny method is a robust algorithm for doing this.
Note
This method uses two thresholds to decide whether a pixel is an edge. In what is called a hysteresis procedure, a lower and an upper threshold are used (see http://docs.opencv.org/doc/tutorials/imgproc/imgtrans/canny_detector/canny_detector.html). Since OpenCV already includes a good example of the Canny edge detector (in [opencv_source_code]/samples/cpp/edge.cpp
), we do not include one here (but see the following floodFill
example). Instead, we will go on to describe other highly useful functions based on detected edges.