OpenCV: Non-Photorealistic Rendering

| OpenCV 3.4.2 Open Source Computer Vision

Functions
Non-Photorealistic Rendering
Computational Photography

## Functions
void | cv::detailEnhance (InputArray src, OutputArray dst, float sigma_s=10, float sigma_r=0.15f)
| This filter enhances the details of a particular image. More...
void | cv::edgePreservingFilter (InputArray src, OutputArray dst, int flags=1, float sigma_s=60, float sigma_r=0.4f)
| Filtering is the fundamental operation in image and video processing. Edge-preserving smoothing filters are used in many different applications [33] . More...
void | cv::pencilSketch (InputArray src, OutputArray dst1, OutputArray dst2, float sigma_s=60, float sigma_r=0.07f, float shade_factor=0.02f)
| Pencil-like non-photorealistic line drawing. More...
void | cv::stylization (InputArray src, OutputArray dst, float sigma_s=60, float sigma_r=0.45f)
| Stylization aims to produce digital imagery with a wide variety of effects not focused on photorealism. Edge-aware filters are ideal for stylization, as they can abstract regions of low contrast while preserving, or enhancing, high-contrast features. More...

## Detailed Description

## Function Documentation

## ◆ detailEnhance()

void cv::detailEnhance | ( | InputArray | src,
|  | OutputArray | dst,
|  | float | sigma_s = `10`,
|  | float | sigma_r = `0.15f`
| ) |  |

This filter enhances the details of a particular image.

Parameters

  src | Input 8-bit 3-channel image.
  dst | Output image with the same size and type as src.
  sigma_s | Range between 0 to 200.
  sigma_r | Range between 0 to 1.

Examples:
  npr_demo.cpp.

## ◆ edgePreservingFilter()

void cv::edgePreservingFilter | ( | InputArray | src,
|  | OutputArray | dst,
|  | int | flags = `1`,
|  | float | sigma_s = `60`,
|  | float | sigma_r = `0.4f`
| ) |  |

Filtering is the fundamental operation in image and video processing. Edge-preserving smoothing filters are used in many different applications [33] .

Parameters

  src | Input 8-bit 3-channel image.
  dst | Output 8-bit 3-channel image.
  flags | Edge preserving filters: RECURS_FILTER = 1 NORMCONV_FILTER = 2
  sigma_s | Range between 0 to 200.
  sigma_r | Range between 0 to 1.

Examples:
  npr_demo.cpp.

## ◆ pencilSketch()

void cv::pencilSketch | ( | InputArray | src,
|  | OutputArray | dst1,
|  | OutputArray | dst2,
|  | float | sigma_s = `60`,
|  | float | sigma_r = `0.07f`,
|  | float | shade_factor = `0.02f`
| ) |  |

Pencil-like non-photorealistic line drawing.

Parameters

  src | Input 8-bit 3-channel image.
  dst1 | Output 8-bit 1-channel image.
  dst2 | Output image with the same size and type as src.
  sigma_s | Range between 0 to 200.
  sigma_r | Range between 0 to 1.
  shade_factor | Range between 0 to 0.1.

Examples:
  npr_demo.cpp.

## ◆ stylization()

void cv::stylization | ( | InputArray | src,
|  | OutputArray | dst,
|  | float | sigma_s = `60`,
|  | float | sigma_r = `0.45f`
| ) |  |

Stylization aims to produce digital imagery with a wide variety of effects not focused on photorealism. Edge-aware filters are ideal for stylization, as they can abstract regions of low contrast while preserving, or enhancing, high-contrast features.

Parameters

  src | Input 8-bit 3-channel image.
  dst | Output image with the same size and type as src.
  sigma_s | Range between 0 to 200.
  sigma_r | Range between 0 to 1.

Examples:
  npr_demo.cpp.