Ansel 0.0
A darktable fork - bloat + design vision
Loading...
Searching...
No Matches
heal.c File Reference
#include "control/control.h"
#include "develop/imageop.h"
#include "develop/openmp_maths.h"
#include "heal.h"
+ Include dependency graph for heal.c:

Data Structures

struct  _aligned_pixel
 

Typedefs

typedef struct _aligned_pixel _aligned_pixel
 

Functions

static void _heal_sub (const float *const top_buffer, const float *const bottom_buffer, float *const restrict red_buffer, float *const restrict black_buffer, const size_t width, const size_t height)
 
static void _heal_add (const float *const restrict red_buffer, const float *const black_buffer, const float *const restrict second_buffer, float *const restrict result_buffer, const size_t width, const size_t height)
 
static float _heal_laplace_iteration (float *const restrict active_pixels, const float *const restrict neighbor_pixels, const size_t height, const size_t width, const unsigned *const restrict runs, const size_t num_runs, const size_t start_parity, const float w)
 
static size_t _collect_color_runs (const float *const restrict mask, const size_t start_index, size_t start, const size_t width, unsigned *const restrict runs, size_t count, size_t *nmask)
 
static void collect_runs (const int start, const float *const restrict mask, const size_t width, const size_t height, const size_t subwidth, unsigned *const restrict runs, size_t *count, size_t *nmask)
 
static void _heal_laplace_loop (float *const restrict red_pixels, float *const restrict black_pixels, const size_t width, const size_t height, const float *const restrict mask, const int max_iter)
 
void dt_heal (const float *const src_buffer, float *dest_buffer, const float *const mask_buffer, const int width, const int height, const int ch, const int max_iter)
 

Typedef Documentation

◆ _aligned_pixel

Function Documentation

◆ _collect_color_runs()

static size_t _collect_color_runs ( const float *const restrict  mask,
const size_t  start_index,
size_t  start,
const size_t  width,
unsigned *const restrict  runs,
size_t  count,
size_t *  nmask 
)
static

References FALSE, TRUE, and width.

Referenced by collect_runs().

◆ _heal_add()

static void _heal_add ( const float *const restrict  red_buffer,
const float *const  black_buffer,
const float *const restrict  second_buffer,
float *const restrict  result_buffer,
const size_t  width,
const size_t  height 
)
static

References for_each_channel, height, and width.

Referenced by dt_heal().

◆ _heal_laplace_iteration()

static float _heal_laplace_iteration ( float *const restrict  active_pixels,
const float *const restrict  neighbor_pixels,
const size_t  height,
const size_t  width,
const unsigned *const restrict  runs,
const size_t  num_runs,
const size_t  start_parity,
const float  w 
)
static

◆ _heal_laplace_loop()

static void _heal_laplace_loop ( float *const restrict  red_pixels,
float *const restrict  black_pixels,
const size_t  width,
const size_t  height,
const float *const restrict  mask,
const int  max_iter 
)
static

◆ _heal_sub()

static void _heal_sub ( const float *const  top_buffer,
const float *const  bottom_buffer,
float *const restrict  red_buffer,
float *const restrict  black_buffer,
const size_t  width,
const size_t  height 
)
static

References for_each_channel, height, and width.

Referenced by dt_heal().

◆ collect_runs()

static void collect_runs ( const int  start,
const float *const restrict  mask,
const size_t  width,
const size_t  height,
const size_t  subwidth,
unsigned *const restrict  runs,
size_t *  count,
size_t *  nmask 
)
static

References _collect_color_runs(), height, and width.

Referenced by _heal_laplace_loop().

◆ dt_heal()

void dt_heal ( const float *const  src_buffer,
float *  dest_buffer,
const float *const  mask_buffer,
const int  width,
const int  height,
const int  ch,
const int  max_iter 
)