Skip to Main Content
Learning OpenCV
book

Learning OpenCV

by Gary Bradski, Adrian Kaehler
September 2008
Beginner to intermediate content levelBeginner to intermediate
580 pages
20h 7m
English
O'Reilly Media, Inc.
Content preview from Learning OpenCV

Smoothing

Smoothing, also called blurring, is a simple and frequently used image processing operation. There are many reasons for smoothing, but it is usually done to reduce noise or camera artifacts. Smoothing is also important when we wish to reduce the resolution of an image in a principled way (we will discuss this in more detail in the "Image Pyramids" section of this chapter).

OpenCV offers five different smoothing operations at this time. All of them are supported through one function, cvSmooth(),[46] which takes our desired form of smoothing as an argument.

void cvSmooth(
  const CvArr*  src,
  CvArr*        dst,
  int           smoothtype = CV_GAUSSIAN,
  int           param1     = 3,
  int           param2     = 0,
  double        param3     = 0,
  double        param4     = 0
);

The src and dst arguments are the usual source and destination for the smooth operation. The cvSmooth() function has four parameters with the particularly uninformative names of param1, param2, param3, and param4. The meaning of these parameters depends on the value of smoothtype, which may take any of the five values listed in Table 5-1.[47] (Please notice that for some values of smoothtype, "in place operation", in which src and dst indicate the same image, is not allowed.)

Table 5-1. Types of smoothing operations, meaning of their parameters, and the depth and number of channels (Nc) supported by each operation.

Smooth type

Name

In place

Nc

src depth

dst depth

Brief description

CV_BLUR

Simple blur

Yes

Any

8u, 32f

8u, 32f

Sum over a param1xparam2 neighborhood with ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

Learning OpenCV 3

Learning OpenCV 3

Adrian Kaehler, Gary Bradski
Learning OpenCV, 2nd Edition

Learning OpenCV, 2nd Edition

Adrian Kaehler, Gary Bradski
Practical OpenCV

Practical OpenCV

Samarth Brahmbhatt
Machine Learning for OpenCV

Machine Learning for OpenCV

Michael Beyeler, Michael Beyeler (USD)

Publisher Resources

ISBN: 9780596516130Supplemental ContentErrata Page