78 void* status_userdata,
98 'r',
'e',
'i',
'c',
'h',
'a',
'r',
'd',
't',
100 '/',
'_',
'_',
')',
'\0'
116 buf[10] =
'0' + ((dir+1) / 10);
117 buf[11] =
'0' + ((dir+1) % 10);
132 &chan->
shifted_prev[dir], &shiftedCur, status_func, status_userdata, &chanOut);
137 if (env_img_initialized(&chanOut))
139 if (!env_img_initialized(result))
143 env_img_pixelsw(result));
149 env_img_pixelsw(result));
156 if (env_img_initialized(result))
159 if (status_func) (*status_func)(status_userdata, tagName, result);
void env_c_image_div_scalar_accum(const intg32 *const a, const env_size_t sz, intg32 val, intg32 *const dst)
result += a / val
void env_c_image_div_scalar(const intg32 *const a, const env_size_t sz, intg32 val, intg32 *const dst)
result = a / val
void env_chan_direction(const char *tagName, const struct env_params *envp, const struct env_math *imath, const struct env_dims inputdims, const struct env_pyr *unshiftedPrev, const struct env_pyr *unshiftedCur, const struct env_pyr *shiftedPrev, const struct env_pyr *shiftedCur, env_chan_status_func *status_func, void *status_userdata, struct env_image *result)
A motion sensitive channel with direction selectivity.
void() env_chan_status_func(void *userdata, const char *tagName, const struct env_image *img)
void * env_allocate(unsigned long nbytes)
void env_deallocate(void *mem)
void env_img_resize_dims(struct env_image *img, const struct env_dims d)
#define env_img_initializer
void env_img_make_empty(struct env_image *img)
void env_max_normalize_inplace(struct env_image *src, intg32 min, intg32 max, enum env_maxnorm_type typ, const intg32 rangeThresh)
void env_shift_image(const struct env_image *srcImg, const env_ssize_t dxnumer, const env_ssize_t dynumer, const env_size_t denombits, struct env_image *result)
void env_motion_channel_init(struct env_motion_channel *chan, const struct env_params *envp)
void env_motion_channel_input_and_consume_pyr(struct env_motion_channel *chan, const char *tagName, const struct env_params *envp, const struct env_math *imath, const struct env_dims inputdims, struct env_pyr *unshiftedCur, env_chan_status_func *status_func, void *status_userdata, struct env_image *result)
env_motion_channel only requires luminosity input
void env_motion_channel_destroy(struct env_motion_channel *chan)
env_size_t env_max_pyr_depth(const struct env_params *envp)
void env_pyr_init(struct env_pyr *pyr, const env_size_t n)
Construct with a given number of empty images.
void env_pyr_swap(struct env_pyr *pyr1, struct env_pyr *pyr2)
Swap contents with another env_pyr.
void env_pyr_make_empty(struct env_pyr *dst)
ENV_INTG32_TYPE intg32
32-bit signed integer
A simple struct to hold a pair of width/height dimensions.
A composite channel containing a set of direction channels.
env_size_t num_directions
struct env_pyr unshifted_prev
struct env_pyr * shifted_prev
env_size_t num_motion_directions
enum env_maxnorm_type maxnorm_type
This class implements a set of images, often used as a dyadic pyramid.