Non-Photorealistic Rendering

edgePreservingFilter

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

C++: void edgePreservingFilter(InputArray src, OutputArray dst, int flags=1, float sigma_s=60, float sigma_r=0.4f)
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.

detailEnhance

This filter enhances the details of a particular image.

C++: void detailEnhance(InputArray src, OutputArray dst, float sigma_s=10, float sigma_r=0.15f)
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.

pencilSketch

Pencil-like non-photorealistic line drawing

C++: void pencilSketch(InputArray src, OutputArray dst1, OutputArray dst2, float sigma_s=60, float sigma_r=0.07f, float shade_factor=0.02f)
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.

stylization

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.

C++: void stylization(InputArray src, OutputArray dst, float sigma_s=60, float sigma_r=0.45f)
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.
[EM11]Eduardo S. L. Gastal, Manuel M. Oliveira, “Domain transform for edge-aware image and video processing”, ACM Trans. Graph. 30(4): 69, 2011.