Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

SlamFlagSpecialist Class Reference

As part of the GridImageProcessor the SlamFlagSpecialist searches for flag landmarks starting at a point in an Image determined before. More...

#include <SlamFlagSpecialist.h>

Collaboration diagram for SlamFlagSpecialist:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 SlamFlagSpecialist (const ColorCorrector &)
void init (const Image &image)
 Initializes the flag specialist.

void searchFlags (const Image &image, const ColorTable &colorTable, const CameraMatrix &cameraMatrix, colorClass color, bool pinkIsTop, const Geometry::Line horizonLine, int x, int y)
 Searches for the flag in the image, starting from the specified point.

void getFlagPercept (const CameraMatrix &cameraMatrix, const CameraMatrix &prevCameraMatrix, const CameraInfo &cameraInfo, const Geometry::Line horizonLine, LandmarksPercept &landmarksPercept)
 DECLARE_DEBUG_IMAGE (imageProcessorFlags)
 Used for visualization of the flag scans.


Private Types

enum  { maxNumberOfBoundingBoxes = 6 }
enum  { numberOfHorizontalScans = 5, numberOfVerticalScans = 3 }
enum  Direction {
  up, down, left,
  right
}
enum  DebugType { initial, vertical, horizontal }

Private Member Functions

void estimateOffsetForFlags (LandmarksPercept &landmarksPercept, const Vector2< double > &cameraOffset)
bool findEndOfFlag (const Image &image, const CameraInfo &bwCameraInfo, const ColorTable &colorTable, const Vector2< int > start, Vector2< double > horizonDirection, Direction direction, Vector2< int > &destination, colorClass color, bool pinkIsTop, bool startIsInTop, DebugType type, int &countPixel, int &countTop, int &countBottom)

Private Attributes

const ColorCorrectorcolorCorrector
int imageWidth
int imageHeight
Vector2< int > north
Vector2< int > east
Vector2< int > south
Vector2< int > west
Vector2< int > start
Vector2< int > destination
double boundingBoxTop [maxNumberOfBoundingBoxes][6]
double boundingBoxBottom [maxNumberOfBoundingBoxes][6]
double boundingBoxLeft [maxNumberOfBoundingBoxes][6]
double boundingBoxRight [maxNumberOfBoundingBoxes][6]
bool boundingBoxTopValid [maxNumberOfBoundingBoxes][6]
bool boundingBoxBottomValid [maxNumberOfBoundingBoxes][6]
bool boundingBoxLeftValid [maxNumberOfBoundingBoxes][6]
bool boundingBoxRightValid [maxNumberOfBoundingBoxes][6]
int numberOfBoundingBoxes [6]
int bestBoundingBox [6]

Detailed Description

As part of the GridImageProcessor the SlamFlagSpecialist searches for flag landmarks starting at a point in an Image determined before.

Definition at line 22 of file SlamFlagSpecialist.h.


Member Enumeration Documentation

anonymous enum [private]
 

Enumeration values:
maxNumberOfBoundingBoxes 

Definition at line 67 of file SlamFlagSpecialist.h.

anonymous enum [private]
 

Enumeration values:
numberOfHorizontalScans 
numberOfVerticalScans 

Definition at line 68 of file SlamFlagSpecialist.h.

enum SlamFlagSpecialist::Direction [private]
 

Enumeration values:
up 
down 
left 
right 

Definition at line 84 of file SlamFlagSpecialist.h.

enum SlamFlagSpecialist::DebugType [private]
 

Enumeration values:
initial 
vertical 
horizontal 

Definition at line 85 of file SlamFlagSpecialist.h.


Constructor & Destructor Documentation

SlamFlagSpecialist::SlamFlagSpecialist const ColorCorrector  ) 
 

Definition at line 17 of file SlamFlagSpecialist.cpp.


Member Function Documentation

void SlamFlagSpecialist::init const Image image  ) 
 

Initializes the flag specialist.

Definition at line 22 of file SlamFlagSpecialist.cpp.

References INIT_DEBUG_IMAGE.

Referenced by SlamBeaconDetector::execute().

void SlamFlagSpecialist::searchFlags const Image image,
const ColorTable colorTable,
const CameraMatrix cameraMatrix,
colorClass  color,
bool  pinkIsTop,
const Geometry::Line  horizonLine,
int  x,
int  y
 

Searches for the flag in the image, starting from the specified point.

Definition at line 32 of file SlamFlagSpecialist.cpp.

References Geometry::Line::base, DEBUG_IMAGE_SET_PIXEL_BLUE, DEBUG_IMAGE_SET_PIXEL_GREEN, DEBUG_IMAGE_SET_PIXEL_RED, DEBUG_IMAGE_SET_PIXEL_YELLOW, Geometry::Line::direction, DOT, Flag::FlagType, CameraInfo::focalLength, CameraInfo::focalLengthInv, Geometry::getDistanceToLine(), CameraInfo::opticalCenter, CameraInfo::resolutionHeight, CameraInfo::resolutionWidth, sqr, Vector2< V >::x, Vector2< double >::x, Vector2< V >::y, and Vector2< double >::y.

Referenced by SlamBeaconDetector::analyzeBeacon(), and SlamBeaconDetector::scanForBeaconEdges().

Here is the call graph for this function:

void SlamFlagSpecialist::getFlagPercept const CameraMatrix cameraMatrix,
const CameraMatrix prevCameraMatrix,
const CameraInfo cameraInfo,
const Geometry::Line  horizonLine,
LandmarksPercept landmarksPercept
 

Definition at line 440 of file SlamFlagSpecialist.cpp.

References ConditionalBoundary::addX(), ConditionalBoundary::addY(), Flag::FlagType, CameraInfo::focalLength, CameraInfo::focalLengthInv, getPlayer(), Player::getTeamColor(), CameraInfo::opticalCenter, Geometry::rayFromCamera(), CameraInfo::resolutionHeight, CameraInfo::resolutionWidth, SEND_DEBUG_IMAGE, sqr, Vector3< V >::x, Vector2< V >::x, Vector2< double >::x, Vector3< V >::y, Vector2< V >::y, and Vector2< double >::y.

Referenced by SlamBeaconDetector::execute().

Here is the call graph for this function:

void SlamFlagSpecialist::estimateOffsetForFlags LandmarksPercept landmarksPercept,
const Vector2< double > &  cameraOffset
[private]
 

Definition at line 574 of file SlamFlagSpecialist.cpp.

References Vector2< double >::abs(), Flag::angle, Flag::angleValidity, Flag::distance, Flag::distanceValidity, Range< double >::getCenter(), Range< double >::getSize(), ConditionalBoundary::isOnBorder(), Range< double >::max, Range< double >::min, Pose2D::translation, Boundary< double >::x, and Boundary< double >::y.

Here is the call graph for this function:

bool SlamFlagSpecialist::findEndOfFlag const Image image,
const CameraInfo bwCameraInfo,
const ColorTable colorTable,
const Vector2< int >  start,
Vector2< double >  horizonDirection,
Direction  direction,
Vector2< int > &  destination,
colorClass  color,
bool  pinkIsTop,
bool  startIsInTop,
DebugType  type,
int &  countPixel,
int &  countTop,
int &  countBottom
[private]
 

Definition at line 272 of file SlamFlagSpecialist.cpp.

References CORRECTED_COLOR_CLASS, DEBUG_IMAGE_SET_PIXEL_RED, DEBUG_IMAGE_SET_PIXEL_Y, Vector2< V >::x, Vector2< double >::x, Vector2< V >::y, and Vector2< double >::y.

SlamFlagSpecialist::DECLARE_DEBUG_IMAGE imageProcessorFlags   ) 
 

Used for visualization of the flag scans.


Member Data Documentation

const ColorCorrector& SlamFlagSpecialist::colorCorrector [private]
 

Definition at line 49 of file SlamFlagSpecialist.h.

int SlamFlagSpecialist::imageWidth [private]
 

Definition at line 51 of file SlamFlagSpecialist.h.

int SlamFlagSpecialist::imageHeight [private]
 

Definition at line 52 of file SlamFlagSpecialist.h.

Vector2<int> SlamFlagSpecialist::north [private]
 

Definition at line 55 of file SlamFlagSpecialist.h.

Vector2<int> SlamFlagSpecialist::east [private]
 

Definition at line 56 of file SlamFlagSpecialist.h.

Vector2<int> SlamFlagSpecialist::south [private]
 

Definition at line 57 of file SlamFlagSpecialist.h.

Vector2<int> SlamFlagSpecialist::west [private]
 

Definition at line 58 of file SlamFlagSpecialist.h.

Vector2<int> SlamFlagSpecialist::start [private]
 

Definition at line 59 of file SlamFlagSpecialist.h.

Vector2<int> SlamFlagSpecialist::destination [private]
 

Definition at line 60 of file SlamFlagSpecialist.h.

double SlamFlagSpecialist::boundingBoxTop[maxNumberOfBoundingBoxes][6] [private]
 

Definition at line 70 of file SlamFlagSpecialist.h.

double SlamFlagSpecialist::boundingBoxBottom[maxNumberOfBoundingBoxes][6] [private]
 

Definition at line 71 of file SlamFlagSpecialist.h.

double SlamFlagSpecialist::boundingBoxLeft[maxNumberOfBoundingBoxes][6] [private]
 

Definition at line 72 of file SlamFlagSpecialist.h.

double SlamFlagSpecialist::boundingBoxRight[maxNumberOfBoundingBoxes][6] [private]
 

Definition at line 73 of file SlamFlagSpecialist.h.

bool SlamFlagSpecialist::boundingBoxTopValid[maxNumberOfBoundingBoxes][6] [private]
 

Definition at line 75 of file SlamFlagSpecialist.h.

bool SlamFlagSpecialist::boundingBoxBottomValid[maxNumberOfBoundingBoxes][6] [private]
 

Definition at line 76 of file SlamFlagSpecialist.h.

bool SlamFlagSpecialist::boundingBoxLeftValid[maxNumberOfBoundingBoxes][6] [private]
 

Definition at line 77 of file SlamFlagSpecialist.h.

bool SlamFlagSpecialist::boundingBoxRightValid[maxNumberOfBoundingBoxes][6] [private]
 

Definition at line 78 of file SlamFlagSpecialist.h.

int SlamFlagSpecialist::numberOfBoundingBoxes[6] [private]
 

Definition at line 80 of file SlamFlagSpecialist.h.

int SlamFlagSpecialist::bestBoundingBox[6] [private]
 

Definition at line 82 of file SlamFlagSpecialist.h.


The documentation for this class was generated from the following files:
Generated on Mon Mar 20 22:20:52 2006 for GT2005 by doxygen 1.3.6