# OpenCV Image Filters

Image filtering is the process of modifying an image by changing its shades or color of the pixel. It is also used to increase brightness and contrast. In this tutorial, we will learn about several types of filters.

## Bilateral Filter

OpenCV provides the bilateralFilter() function to apply the bilateral filter on the image. The bilateral filter can reduce unwanted noise very well while keeping edges sharp. The syntax of the function is given below:

### Parameters:

• src- It denotes the source of the image. It can be an 8-bit or floating-point, 1-channel image.
• dst- It denotes the destination image of the same size. Its type will be the same as the src image.
• d - It denotes the diameter of the pixel neighborhood (integer type) that is used during filtering. If its value is negative, then it is computed from sigmaSpace.
• sigmaColor - It denotes the filter sigma in the color space.
• sigmaSpace - It denotes the filter sigma in the coordinate space.

Consider the following example:

Output

## Box Filter

We can perform this filter using the boxfilter() function. It is similar to the averaging blur operation. The syntax of the function is given below:

### Parameters:

• src - It denotes the source of the image. It can be an 8-bit or floating-point, 1-channel image.
• dst- It denotes the destination image of the same size. Its type will be the same as the src image.
• ddepth - It denotes the output image depth.
• ksize - It blurs the kernel size.
• anchor - It denotes the anchor points. By default, its value Point to coordinates (-1,1), which means that the anchor is at kernel center.
• normalize - It is the flag, specifying whether the kernel should be normalized or not.
• borderType - An integer object represents the type of the border used.

Consider the following example:

Output

## Filter2D

It combines an image with the kernel. We can perform this operation on an image using the Filter2D() method. The syntax of the function is given below:

### Parameters:

• src - It represents the input image.
• dst- It denotes the destination image of the same size. Its type will be the same as the src image.
• kernel - It is a convolution kernel, a single-channel floating-point matrix. If you want to apply different kernels to different channels, split the image into a separate color plane using the split () process them individually.
• anchor - It denotes the anchor points, by default its value Point(-1,1), which means that the anchor is at kernel center.
• borderType - An integer object represents the type of the border used.

Consider the following example:

Output