#include <OmniFastLookupTable.hh>
Collaboration diagram for OmniFastLookupTable:

Definition at line 44 of file OmniFastLookupTable.hh.
Public Member Functions | |
| OmniFastLookupTable (int min_radius, int max_radius, int omni_center_x_pixel, int omni_center_y_pixel, double theta_step=0, bool flipped_mode=false) | |
| Constructor. | |
| virtual | ~OmniFastLookupTable () |
| void | angle_type_conversion (const OmniAngle< double > &in_double_interval, OmniAngle< int > &out_int_interval) |
| Convert an OmniAngle object from its <double> version ot its <int>. | |
| IplImage * | omni2pano (IplImage *omni_frame, const OmniAngle< int > &IN_interval) |
| Conversion between omni frame and panoramic one. | |
| void | pano2omni_xy (CvPoint *pano_point, int theta_start, CvPoint *omni_point) |
| Converts a panoimage xy coord to a omniimage xy coord. | |
| int | get_min_radius () |
| int | get_max_radius () |
| int | get_omni_center_x () |
| int | get_omni_center_y () |
| bool | is_initialized () |
| Specify whether the class is initialized or not. | |
Private Types | |
| typedef OmniFastLookupTable::_image_coord_xy | pano_coord_xy |
| typedef OmniFastLookupTable::_image_coord_xy * | pano_coord_xy_ptr |
| typedef OmniFastLookupTable::_image_coord_xy | omni_coord_xy |
| typedef OmniFastLookupTable::_image_coord_xy * | omni_coord_xy_ptr |
Private Member Functions | |
| bool | omnipano_lookup_table_make () |
| Build the pre-computed values. | |
Private Attributes | |
| OmniFastLookupTable::_omni_bounds | omni_bounds |
| OmniFastLookupTable::_pano_bounds | pano_bounds |
| Lookup table for panoramic image. | |
| double | _theta_step |
| int | _theta_max |
| int | _min_radius |
| int | _max_radius |
| int | _min_to_max_radius_range |
| bool | _flipped_mode |
| Should be the final panoramic image be flipped? | |
| int | _omni_center_x_rgb |
| center pixel coord in omnidirectional image. | |
| int | _omni_center_y_rgb |
| center pixel coord in omnidirectional image. | |
| int | _omni_center_x |
| int | _omni_center_y |
| bool | _is_valid |
| Specify whether the class is initialized or not. | |
Classes | |
| struct | _image_coord_xy |
| struct | _omni_bounds |
| struct | _pano_bounds |
| Lookup table for panoramic image. More... | |
typedef struct OmniFastLookupTable::_image_coord_xy
OmniFastLookupTable::omni_coord_xy [private] |
typedef struct OmniFastLookupTable::_image_coord_xy * OmniFastLookupTable::omni_coord_xy_ptr [private] |
typedef struct OmniFastLookupTable::_image_coord_xy OmniFastLookupTable::pano_coord_xy [private] |
typedef struct OmniFastLookupTable::_image_coord_xy * OmniFastLookupTable::pano_coord_xy_ptr [private] |
| OmniFastLookupTable::OmniFastLookupTable | ( | int | min_radius, | |
| int | max_radius, | |||
| int | omni_center_x_pixel, | |||
| int | omni_center_y_pixel, | |||
| double | theta_step = 0, |
|||
| bool | flipped_mode = false | |||
| ) |
| min_radius | Minimum radius to consider in an omnidirectional Image. This is done to avoid the super-definition of the pixels near the center. | |
| max_radius | The same as min_radius but for the external side. | |
| omni_center_x_pixel | The x-coordinate that represent the center of the omnidirectional image. It may differ from the normal image center. | |
| omni_center_y_pixel | The y-coordinate that represent the center of the omnidirectional image. It may differ from the normal image center. | |
| theta_step | If 0 it's autocomputed. Usually 1/max_radius. Used to known the theta step in double precision. | |
| flipped_mode | Should the result panoramic image be flipped? This option is useful for special omnidirectional images and flipped mirrors. |
Definition at line 27 of file OmniFastLookupTable.cpp.
References _is_valid, _max_radius, _min_radius, _min_to_max_radius_range, _theta_max, _theta_step, and omnipano_lookup_table_make().
Here is the call graph for this function:

| OmniFastLookupTable::~OmniFastLookupTable | ( | ) | [virtual] |
Definition at line 68 of file OmniFastLookupTable.cpp.
References pano_bounds, OmniFastLookupTable::_pano_bounds::pano_data, and OmniFastLookupTable::_pano_bounds::width.
| void OmniFastLookupTable::angle_type_conversion | ( | const OmniAngle< double > & | in_double_interval, | |
| OmniAngle< int > & | out_int_interval | |||
| ) |
| in_double_interval | Input angle. | |
| out_int_interval | Output converted angle. |
Definition at line 99 of file OmniFastLookupTable.cpp.
References _max_radius, _theta_max, OmniAngle< TypeT >::angle_end, OmniAngle< TypeT >::angle_start, is_initialized(), and OmniAngle< TypeT >::range.
Here is the call graph for this function:

| int OmniFastLookupTable::get_max_radius | ( | ) |
| int OmniFastLookupTable::get_min_radius | ( | ) |
| int OmniFastLookupTable::get_omni_center_x | ( | ) |
| int OmniFastLookupTable::get_omni_center_y | ( | ) |
| bool OmniFastLookupTable::is_initialized | ( | ) |
Definition at line 91 of file OmniFastLookupTable.cpp.
References _is_valid.
Referenced by angle_type_conversion(), StreamerCtrlThread::initializeOmniStuff(), ReceiverCtrlThread::initializeOmniStuff(), and omni2pano().
Here is the caller graph for this function:

| IplImage * OmniFastLookupTable::omni2pano | ( | IplImage * | omni_frame, | |
| const OmniAngle< int > & | IN_interval | |||
| ) |
The great thing about this template is that you can overload as many time as you want this function, without change the main template.
| omni_frame | Frame of an omnidirectional image you want to convert to panoramic one. | |
| IN_interval | part of angle you want to convert to panoramic. It can also be specified as a 360 degree angle. |
Definition at line 148 of file OmniFastLookupTable.cpp.
References _flipped_mode, _max_radius, _min_radius, _min_to_max_radius_range, _theta_max, OmniAngle< TypeT >::angle_start, DEBUG_PRINT, is_initialized(), NULL, OMNI_COORD, PANO_COORD, and OmniAngle< TypeT >::range.
Here is the call graph for this function:

| bool OmniFastLookupTable::omnipano_lookup_table_make | ( | ) | [private] |
Definition at line 232 of file OmniFastLookupTable.cpp.
References _max_radius, _min_radius, _omni_center_x_rgb, _omni_center_y_rgb, _theta_step, DEBUG_PRINT, OmniFastLookupTable::_pano_bounds::height, pano_bounds, OmniFastLookupTable::_pano_bounds::pano_data, OmniFastLookupTable::_pano_bounds::width, OmniFastLookupTable::_image_coord_xy::x_rgb, and OmniFastLookupTable::_image_coord_xy::y_rgb.
Referenced by OmniFastLookupTable().
Here is the caller graph for this function:

| void OmniFastLookupTable::pano2omni_xy | ( | CvPoint * | pano_point, | |
| int | theta_start, | |||
| CvPoint * | omni_point | |||
| ) |
This function is useful if you want to pass from a omni2pano's image point with a start_angle theta back to the point of the original omni image.
| pano_point | The point in the panoramic image we want to convert. | |
| theta_start | The angle of the point. | |
| omni_point | The resulting point. |
Definition at line 299 of file OmniFastLookupTable.cpp.
References _max_radius, _min_radius, _omni_center_x, and _omni_center_y.
bool OmniFastLookupTable::_flipped_mode [private] |
bool OmniFastLookupTable::_is_valid [private] |
Definition at line 180 of file OmniFastLookupTable.hh.
Referenced by is_initialized(), and OmniFastLookupTable().
int OmniFastLookupTable::_max_radius [private] |
Definition at line 158 of file OmniFastLookupTable.hh.
Referenced by angle_type_conversion(), get_max_radius(), omni2pano(), OmniFastLookupTable(), omnipano_lookup_table_make(), and pano2omni_xy().
int OmniFastLookupTable::_min_radius [private] |
Definition at line 157 of file OmniFastLookupTable.hh.
Referenced by get_min_radius(), omni2pano(), OmniFastLookupTable(), omnipano_lookup_table_make(), and pano2omni_xy().
int OmniFastLookupTable::_min_to_max_radius_range [private] |
Definition at line 159 of file OmniFastLookupTable.hh.
Referenced by omni2pano(), and OmniFastLookupTable().
int OmniFastLookupTable::_omni_center_x [private] |
Definition at line 176 of file OmniFastLookupTable.hh.
Referenced by get_omni_center_x(), and pano2omni_xy().
int OmniFastLookupTable::_omni_center_x_rgb [private] |
These are used to fix the omniimage center's position, that can be not exact the same as the real omniimage
Definition at line 168 of file OmniFastLookupTable.hh.
Referenced by omnipano_lookup_table_make().
int OmniFastLookupTable::_omni_center_y [private] |
Definition at line 177 of file OmniFastLookupTable.hh.
Referenced by get_omni_center_y(), and pano2omni_xy().
int OmniFastLookupTable::_omni_center_y_rgb [private] |
These are used to fix the omniimage center's position, that can be not exact the same as the real omniimage
Definition at line 174 of file OmniFastLookupTable.hh.
Referenced by omnipano_lookup_table_make().
int OmniFastLookupTable::_theta_max [private] |
Definition at line 156 of file OmniFastLookupTable.hh.
Referenced by angle_type_conversion(), omni2pano(), and OmniFastLookupTable().
double OmniFastLookupTable::_theta_step [private] |
Definition at line 155 of file OmniFastLookupTable.hh.
Referenced by OmniFastLookupTable(), and omnipano_lookup_table_make().
struct OmniFastLookupTable::_omni_bounds OmniFastLookupTable::omni_bounds [private] |
struct OmniFastLookupTable::_pano_bounds OmniFastLookupTable::pano_bounds [private] |
Referenced by omnipano_lookup_table_make(), and ~OmniFastLookupTable().
1.4.7