Tekkotsu Homepage
Demos
Overview
Downloads
Dev. Resources
Reference
Credits

Config::vision_config Class Reference

#include <Config.h>

Inheritance diagram for Config::vision_config:

Inheritance graph
[legend]
List of all members.

Detailed Description

vision configuration options (this is a *big* section, with sub-sections)

Definition at line 248 of file Config.h.

Public Types

 WB_INDOOR = ocamparamWB_INDOOR_MODE
 WB_OUTDOOR = ocamparamWB_OUTDOOR_MODE
 WB_FLUORESCENT = ocamparamWB_FL_MODE
 GAIN_LOW = ocamparamGAIN_LOW
 GAIN_MID = ocamparamGAIN_MID
 GAIN_HIGH = ocamparamGAIN_HIGH
 SHUTTER_SLOW = ocamparamSHUTTER_SLOW
 SHUTTER_MID = ocamparamSHUTTER_MID
 SHUTTER_FAST = ocamparamSHUTTER_FAST
enum  white_balance_levels { WB_INDOOR = ocamparamWB_INDOOR_MODE, WB_OUTDOOR = ocamparamWB_OUTDOOR_MODE, WB_FLUORESCENT = ocamparamWB_FL_MODE }
 white balance levels supported by the Aibo's camera
enum  gain_levels { GAIN_LOW = ocamparamGAIN_LOW, GAIN_MID = ocamparamGAIN_MID, GAIN_HIGH = ocamparamGAIN_HIGH }
 gain levels supported by the Aibo's camera
enum  shutter_speeds { SHUTTER_SLOW = ocamparamSHUTTER_SLOW, SHUTTER_MID = ocamparamSHUTTER_MID, SHUTTER_FAST = ocamparamSHUTTER_FAST }
 shutter speeds supported by the Aibo's camera

Public Member Functions

 vision_config ()
 constructor
void computeRay (float x, float y, float &r_x, float &r_y, float &r_z)
 provides a ray from camera through pixel in image; where possible, use computePixel for better accuracy (i.e. try to always move from world to camera instead of the other way around)
void computePixel (float r_x, float r_y, float r_z, float &x, float &y)
 provides a pixel hit in image by a ray going through the camera frame

Public Attributes

plist::NamedEnumeration< white_balance_levelswhite_balance
 white balance shifts color spectrum in the image
plist::NamedEnumeration< gain_levelsgain
 Increasing gain will brighten the image, at the expense of more graininess/noise.
plist::NamedEnumeration< shutter_speedsshutter_speed
 slower shutter will brighten image, but increases motion blur
plist::Primitive< int > resolution
 the resolution that object recognition system will run at -- this counts down from the maximum resolution layer, so higher numbers mean lower resolution
plist::ArrayOf< plist::Primitive<
std::string > > 
thresh
 threshold file names
plist::Primitive< std::string > colors
 colors definition (.col) file
plist::Primitive< bool > restore_image
 if true, replaces pixels holding image info with actual image pixels (as much as possible anyway)
plist::Primitive< bool > region_calc_total
 if true, RegionGenerator will calculate total area for each color (has to run through the region list for each color)
plist::NamedEnumeration< J_DCT_METHOD > jpeg_dct_method
 pick between dct methods for jpeg compression
plist::Primitive< float > aspectRatio
 ratio of width to height (x_res/y_res); this is *not* read from configuration file, but set from most recent camera image (or RobotInfo namespace values if no camera image has been received)
plist::Primitive< float > x_range
 range of values for the x axis when using generalized coordinates; this is *not* read from configuration file, but set from most recent camera image (or RobotInfo namespace values if no camera image has been received)
plist::Primitive< float > y_range
 range of values for the x axis when using generalized coordinates; this is *not* read from configuration file, but set from most recent camera image (or RobotInfo namespace values if no camera image has been received)
Config::vision_config::RawCamConfig rawcam
 contains settings specific to the "RawCam" (original camera images) for streaming video over the network
Config::vision_config::SegCamConfig segcam
 contains settings specific to the "SegCam" (segmented color images) for streaming video over the network
Config::vision_config::RegionCamConfig regioncam
 contains settings specific to the "RegionCam" (only display a box for each blob of color) for streaming over the network
Config::vision_config::CameraCalibration calibration
 These values represent a "Plumb Bob" model introduced by Brown in 1966.

Static Public Attributes

static const char * dct_method_names [] = { "islow", "ifast", "float", "" }
 string names for J_DCT_METHOD

Classes

class  CameraCalibration
 These values represent a "Plumb Bob" model introduced by Brown in 1966. More...
class  RawCamConfig
 contains settings specific to the "RawCam" (original camera images) for streaming video over the network More...
class  RegionCamConfig
 contains settings specific to the "RegionCam" (only display a box for each blob of color) for streaming over the network More...
class  SegCamConfig
 contains settings specific to the "SegCam" (segmented color images) for streaming video over the network More...
class  StreamingConfig
 contains settings related to streaming video over the network More...


Member Function Documentation

void Config::vision_config::computePixel ( float  r_x,
float  r_y,
float  r_z,
float &  x,
float &  y 
)

provides a pixel hit in image by a ray going through the camera frame

Parameters:
[in] r_x x value of the ray
[in] r_y y value of the ray
[in] r_z z value of the ray
[out] x x position in range [-1,1]
[out] y y position in range [-1,1]

Definition at line 529 of file Config.cc.

void Config::vision_config::computeRay ( float  x,
float  y,
float &  r_x,
float &  r_y,
float &  r_z 
)

provides a ray from camera through pixel in image; where possible, use computePixel for better accuracy (i.e. try to always move from world to camera instead of the other way around)

We can't precisely undo some terms of the distortion model -- this is an estimate.

Todo:
Might be able to redo the vision calibration in reverse to get another set of parameters dedicated to the inverse computation?
Parameters:
[in] x x position in range [-1,1]
[in] y y position in range [-1,1]
[out] r_x x value of the ray
[out] r_y y value of the ray
[out] r_z z value of the ray (always 1)

Definition at line 511 of file Config.cc.


Member Data Documentation

These values represent a "Plumb Bob" model introduced by Brown in 1966.

Lens Distortion for Close-Range Photogrammetry - D.C. Brown, Photometric Engineering, pages 855-866, Vol. 37, No. 8, 1971.

Can be computated by 'Camera Calibration Toolbox for Matlab', by Jean-Yves Bouguet: http://www.vision.caltech.edu/bouguetj/calib_doc/

Referenced by computePixel(), computeRay(), and vision_config().


The documentation for this class was generated from the following files:

Tekkotsu v3.0
Generated Fri May 11 20:07:53 2007 by Doxygen 1.4.7