JeVoisBase  1.21
JeVois Smart Embedded Machine Vision Toolkit Base Modules
Share this page:
Loading...
Searching...
No Matches
env_channel.h
Go to the documentation of this file.
1/*!@file 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
43struct env_dims;
44struct env_image;
45struct env_math;
46struct env_params;
47struct env_pyr;
48struct env_rgb_pixel;
49
50#ifdef __cplusplus
51extern "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_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.
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.
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_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.
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.
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.
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.
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.
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)
void() env_chan_status_func(void *userdata, const char *tagName, const struct env_image *img)
Definition env_channel.h:55
unsigned long env_size_t
Definition env_types.h:71
A simple struct to hold a pair of width/height dimensions.
Definition env_types.h:81
Basic image class.
Definition env_image.h:44
struct env_dims dims
Definition env_image.h:45
This class implements a set of images, often used as a dyadic pyramid.
Definition env_pyr.h:46
RGB pixel class.
Definition env_types.h:75