Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
fast_guided_filter.h File Reference
#include <assert.h>
#include <math.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <time.h>
#include "common/box_filters.h"
#include "common/darktable.h"
#include "common/imagebuf.h"
#include "control/control.h"
+ Include dependency graph for fast_guided_filter.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define MIN_FLOAT   exp2f(-16.0f)
 

Typedefs

typedef enum dt_iop_guided_filter_blending_t dt_iop_guided_filter_blending_t
 

Enumerations

enum  dt_iop_guided_filter_blending_t {
  DT_GF_BLENDING_LINEAR = 0 ,
  DT_GF_BLENDING_GEOMEAN
}
 

Functions

static __DT_CLONE_TARGETS__ float fast_clamp (const float value, const float bottom, const float top)
 
static __DT_CLONE_TARGETS__ void interpolate_bilinear (const float *const restrict in, const size_t width_in, const size_t height_in, float *const restrict out, const size_t width_out, const size_t height_out, const size_t ch)
 
static __DT_CLONE_TARGETS__ void variance_analyse (const float *const restrict guide, const float *const restrict mask, float *const restrict ab, const size_t width, const size_t height, const int radius, const float feathering)
 
static __DT_CLONE_TARGETS__ void apply_linear_blending (float *const restrict image, const float *const restrict ab, const size_t num_elem)
 
static __DT_CLONE_TARGETS__ void apply_linear_blending_w_geomean (float *const restrict image, const float *const restrict ab, const size_t num_elem)
 
static __DT_CLONE_TARGETS__ void quantize (const float *const restrict image, float *const restrict out, const size_t num_elem, const float sampling, const float clip_min, const float clip_max)
 
static __DT_CLONE_TARGETS__ void fast_surface_blur (float *const restrict image, const size_t width, const size_t height, const int radius, float feathering, const int iterations, const dt_iop_guided_filter_blending_t filter, const float scale, const float quantization, const float quantize_min, const float quantize_max)
 

Macro Definition Documentation

◆ MIN_FLOAT

#define MIN_FLOAT   exp2f(-16.0f)

Typedef Documentation

◆ dt_iop_guided_filter_blending_t

Enumeration Type Documentation

◆ dt_iop_guided_filter_blending_t

Enumerator
DT_GF_BLENDING_LINEAR 
DT_GF_BLENDING_GEOMEAN 

Function Documentation

◆ apply_linear_blending()

static __DT_CLONE_TARGETS__ void apply_linear_blending ( float *const restrict  image,
const float *const restrict  ab,
const size_t  num_elem 
)
inlinestatic

References MIN_FLOAT.

Referenced by fast_surface_blur().

◆ apply_linear_blending_w_geomean()

static __DT_CLONE_TARGETS__ void apply_linear_blending_w_geomean ( float *const restrict  image,
const float *const restrict  ab,
const size_t  num_elem 
)
inlinestatic

References MIN_FLOAT.

Referenced by fast_surface_blur().

◆ fast_clamp()

static __DT_CLONE_TARGETS__ float fast_clamp ( const float  value,
const float  bottom,
const float  top 
)
inlinestatic

◆ fast_surface_blur()

static __DT_CLONE_TARGETS__ void fast_surface_blur ( float *const restrict  image,
const size_t  width,
const size_t  height,
const int  radius,
float  feathering,
const int  iterations,
const dt_iop_guided_filter_blending_t  filter,
const float  scale,
const float  quantization,
const float  quantize_min,
const float  quantize_max 
)
inlinestatic

◆ interpolate_bilinear()

static __DT_CLONE_TARGETS__ void interpolate_bilinear ( const float *const restrict  in,
const size_t  width_in,
const size_t  height_in,
float *const restrict  out,
const size_t  width_out,
const size_t  height_out,
const size_t  ch 
)
inlinestatic

◆ quantize()

static __DT_CLONE_TARGETS__ void quantize ( const float *const restrict  image,
float *const restrict  out,
const size_t  num_elem,
const float  sampling,
const float  clip_min,
const float  clip_max 
)
inlinestatic

◆ variance_analyse()

static __DT_CLONE_TARGETS__ void variance_analyse ( const float *const restrict  guide,
const float *const restrict  mask,
float *const restrict  ab,
const size_t  width,
const size_t  height,
const int  radius,
const float  feathering 
)
inlinestatic