Non-Photorealistic Rendering

Overview

// global functions

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

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

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

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

Detailed Documentation

Global 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.

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.
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 [31].

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.
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.
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.