JeVoisBase  1.6
JeVois Smart Embedded Machine Vision Toolkit Base Modules
Share this page:
env_channel.h
Go to the documentation of this file.
1 /*!@file Envision/env_channel.h Base class for channels that will use integer math */
2 
3 // //////////////////////////////////////////////////////////////////// //
4 // The iLab Neuromorphic Vision C++ Toolkit - Copyright (C) 2000-2005 //
5 // by the University of Southern California (USC) and the iLab at USC. //
6 // See http://iLab.usc.edu for information about this project. //
7 // //////////////////////////////////////////////////////////////////// //
8 // Major portions of the iLab Neuromorphic Vision Toolkit are protected //
9 // under the U.S. patent ``Computation of Intrinsic Perceptual Saliency //
10 // in Visual Environments, and Applications'' by Christof Koch and //
11 // Laurent Itti, California Institute of Technology, 2001 (patent //
12 // pending; application number 09/912,225 filed July 23, 2001; see //
13 // http://pair.uspto.gov/cgi-bin/final/home.pl for current status). //
14 // //////////////////////////////////////////////////////////////////// //
15 // This file is part of the iLab Neuromorphic Vision C++ Toolkit. //
16 // //
17 // The iLab Neuromorphic Vision C++ Toolkit is free software; you can //
18 // redistribute it and/or modify it under the terms of the GNU General //
19 // Public License as published by the Free Software Foundation; either //
20 // version 2 of the License, or (at your option) any later version. //
21 // //
22 // The iLab Neuromorphic Vision C++ Toolkit is distributed in the hope //
23 // that it will be useful, but WITHOUT ANY WARRANTY; without even the //
24 // implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR //
25 // PURPOSE. See the GNU General Public License for more details. //
26 // //
27 // You should have received a copy of the GNU General Public License //
28 // along with the iLab Neuromorphic Vision C++ Toolkit; if not, write //
29 // to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, //
30 // Boston, MA 02111-1307 USA. //
31 // //////////////////////////////////////////////////////////////////// //
32 //
33 // Primary maintainer for this file: Rob Peters <rjpeters at usc dot edu>
34 // $HeadURL: svn://isvn.usc.edu/software/invt/trunk/saliency/src/Envision/env_channel.h $
35 // $Id: env_channel.h 8054 2007-03-07 00:47:08Z rjpeters $
36 //
37 
38 #pragma once
39 
42 
43 struct env_dims;
44 struct env_image;
45 struct env_math;
46 struct env_params;
47 struct env_pyr;
48 struct env_rgb_pixel;
49 
50 #ifdef __cplusplus
51 extern "C"
52 {
53 #endif
54 
55  typedef void (env_chan_status_func)(void* userdata,
56  const char* tagName,
57  const struct env_image* img);
58 
59  void env_chan_process_pyr(const char* tagName,
60  const struct env_dims inputDims,
61  const struct env_pyr* pyr,
62  const struct env_params* envp,
63  const struct env_math* imath,
64  const int takeAbs,
65  const int normalizeOutput,
66  struct env_image* result);
67 
68  //! An intensity channel.
69  void env_chan_intensity(const char* tagName,
70  const struct env_params* envp,
71  const struct env_math* imath,
72  const struct env_dims inputdims,
73  const struct env_pyr* lowpass5,
74  const int normalizeOutput,
75  env_chan_status_func* status_func,
76  void* status_userdata,
77  struct env_image* result);
78 
79  //! A double opponent color channel that combines r/g, b/y subchannels
80  void env_chan_color(const char* tagName,
81  const struct env_params* envp,
82  const struct env_math* imath,
83  const struct env_rgb_pixel* const colimg,
84  const struct env_dims dims,
85  env_chan_status_func* status_func,
86  void* status_userdata,
87  struct env_image* result);
88 
89  //! A double opponent color channel that combines r/g, b/y subchannels, with direct RG and BY inputs
90  void env_chan_color_rgby(const char* tagName,
91  const struct env_params* envp,
92  const struct env_math* imath,
93  const struct env_image *rg,
94  const struct env_image *by,
95  env_chan_status_func* status_func,
96  void* status_userdata,
97  struct env_image* result);
98 
99  //! An orientation filtering channel
100  void env_chan_steerable(const char* tagName,
101  const struct env_params* envp,
102  const struct env_math* imath,
103  const struct env_dims inputdims,
104  const struct env_pyr* hipass9,
105  const env_size_t thetaidx,
106  env_chan_status_func* status_func,
107  void* status_userdata,
108  struct env_image* result);
109 
110  //! A composite channel with a set of steerable-filter subchannels
111  void env_chan_orientation(const char* tagName,
112  const struct env_params* envp,
113  const struct env_math* imath,
114  const struct env_image* img,
115  env_chan_status_func* status_func,
116  void* status_userdata,
117  struct env_image* result);
118 
119  //! A temporal flicker channel.
120  void env_chan_flicker(const char* tagName,
121  const struct env_params* envp,
122  const struct env_math* imath,
123  const struct env_image* prev,
124  const struct env_image* cur,
125  env_chan_status_func* status_func,
126  void* status_userdata,
127  struct env_image* result);
128 
129  //! A true multi-scale temporal flicker channel.
130  void env_chan_msflicker(const char* tagName,
131  const struct env_params* envp,
132  const struct env_math* imath,
133  const struct env_dims inputDims,
134  const struct env_pyr* prev_lowpass5,
135  const struct env_pyr* cur_lowpass5,
136  env_chan_status_func* status_func,
137  void* status_userdata,
138  struct env_image* result);
139 
140  //! A motion sensitive channel with direction selectivity
141  void env_chan_direction(const char* tagName,
142  const struct env_params* envp,
143  const struct env_math* imath,
144  const struct env_dims inputdims,
145  const struct env_pyr* unshiftedPrev,
146  const struct env_pyr* unshiftedCur,
147  const struct env_pyr* shiftedPrev,
148  const struct env_pyr* shiftedCur,
149  env_chan_status_func* status_func,
150  void* status_userdata,
151  struct env_image* result);
152 #ifdef __cplusplus
153 }
154 #endif
void env_chan_color_rgby(const char *tagName, const struct env_params *envp, const struct env_math *imath, const struct env_image *rg, const struct env_image *by, env_chan_status_func *status_func, void *status_userdata, struct env_image *result)
A double opponent color channel that combines r/g, b/y subchannels, with direct RG and BY inputs...
Definition: env_channel.c:269
void() env_chan_status_func(void *userdata, const char *tagName, const struct env_image *img)
Definition: env_channel.h:55
void env_chan_process_pyr(const char *tagName, const struct env_dims inputDims, const struct env_pyr *pyr, const struct env_params *envp, const struct env_math *imath, const int takeAbs, const int normalizeOutput, struct env_image *result)
Definition: env_channel.c:124
void env_chan_msflicker(const char *tagName, const struct env_params *envp, const struct env_math *imath, const struct env_dims inputDims, const struct env_pyr *prev_lowpass5, const struct env_pyr *cur_lowpass5, env_chan_status_func *status_func, void *status_userdata, struct env_image *result)
A true multi-scale temporal flicker channel.
Definition: env_channel.c:442
Basic image class.
Definition: env_image.h:43
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.
Definition: env_channel.c:472
struct env_dims dims
Definition: env_image.h:45
void env_chan_orientation(const char *tagName, const struct env_params *envp, const struct env_math *imath, const struct env_image *img, env_chan_status_func *status_func, void *status_userdata, struct env_image *result)
A composite channel with a set of steerable-filter subchannels.
Definition: env_channel.c:339
unsigned long env_size_t
Definition: env_types.h:71
void env_chan_intensity(const char *tagName, const struct env_params *envp, const struct env_math *imath, const struct env_dims inputdims, const struct env_pyr *lowpass5, const int normalizeOutput, env_chan_status_func *status_func, void *status_userdata, struct env_image *result)
An intensity channel.
Definition: env_channel.c:208
RGB pixel class.
Definition: env_types.h:74
void env_chan_flicker(const char *tagName, const struct env_params *envp, const struct env_math *imath, const struct env_image *prev, const struct env_image *cur, env_chan_status_func *status_func, void *status_userdata, struct env_image *result)
A temporal flicker channel.
Definition: env_channel.c:404
void env_chan_color(const char *tagName, const struct env_params *envp, const struct env_math *imath, const struct env_rgb_pixel *const colimg, const struct env_dims dims, env_chan_status_func *status_func, void *status_userdata, struct env_image *result)
A double opponent color channel that combines r/g, b/y subchannels.
Definition: env_channel.c:218
void env_chan_steerable(const char *tagName, const struct env_params *envp, const struct env_math *imath, const struct env_dims inputdims, const struct env_pyr *hipass9, const env_size_t thetaidx, env_chan_status_func *status_func, void *status_userdata, struct env_image *result)
An orientation filtering channel.
Definition: env_channel.c:313
A simple struct to hold a pair of width/height dimensions.
Definition: env_types.h:80
This class implements a set of images, often used as a dyadic pyramid.
Definition: env_pyr.h:45