#include <GT2004BeaconDetector.h>
Collaboration diagram for GT2004BeaconDetector:
Public Types | |
enum | { edgeThresholdU = 13, edgeThresholdV = 15 } |
Public Member Functions | |
GT2004BeaconDetector (const Image &image, const CameraMatrix &cameraMatrix, const CameraMatrix &prevCameraMatrix, const ImageInfo &imageInf, const ColorTable &colorTable, const ColorCorrector &colorCorrector, LandmarksPercept &landmarksPercept) | |
Constructor. | |
void | execute () |
Executes the beacon detection. | |
void | analyzeColorTable () |
Gains information about pink from the current color table. | |
Private Types | |
enum | { lowReliability = 1, mediumReliability = 4, highReliability = 6 } |
Private Member Functions | |
bool | addCandidate (const Run &pinkRun) |
Adds a pink run to the list of candidates. | |
void | scanForPink (const Vector2< int > &start, const Vector2< int > &end) |
Scans along a line. | |
bool | scanForBeaconPart (const Vector2< int > &start, const Vector2< int > &end, Vector2< int > &position, Vector2< int > &edge, colorClass &color) |
Scans for one other beacon part. | |
void | clusterPinkBeaconParts () |
Clusters the pink elements to find the pink beacon parts. | |
void | analyzeBeacon (const Vector2< double > &left, const double pinkRunWidth) |
Tries to detect a beacon near a pink part. | |
int | scanForBeaconEdges (const Vector2< int > &position, const double pinkRunWidth, Flag::FlagType &flagType, Vector2< int > &topEdge, Vector2< int > &bottomEdge) |
Looks for the vertical edges and the color type of a beacon. | |
Private Attributes | |
const SUSANEdgeDetectionLite | edgeDetectionU |
Edge detection operators (U and V components) used to find the boundaries of flags. | |
const SUSANEdgeDetectionLite | edgeDetectionV |
const Image & | image |
The image. | |
const CameraMatrix & | cameraMatrix |
The camera matrix. | |
const CameraMatrix & | prevCameraMatrix |
The previous camera matrix. | |
const ImageInfo & | imageInf |
Additional Image information. | |
const ColorTable & | colorTable |
The color table. | |
LandmarksPercept & | landmarksPercept |
The landmarks percept. | |
int | numOfBeaconCandidates |
The number of possible beacons. | |
Run | beaconCandidates [MAX_NUMBER_OF_PINK_RUNS] |
The list of candidates. | |
TransformedRun | transformedCandidates [MAX_NUMBER_OF_PINK_RUNS] |
A buffer for transformed candidates. | |
const double | horizontalBaseOffset |
The base offset for horizontal scan lines. | |
const int | numOfHorizontalScanLineAbove |
The number of horizontal scan lines above the horizon. | |
const int | numOfHorizontalScanLineBelow |
The number of horizontal scan lines below the horizon. | |
const double | horizontalOffsetModifier |
The growth factor of the distance between two scan lines. | |
const int | clusteringDistanceTolerance |
The maximum distance between the merged runs. | |
const int | minPinkRunLength |
The minimum length of a pink run. | |
const double | clusteringAspectRatio |
The maximum vertical distance of scanlines to be clustered, over the estimated merged horizontal distance (half beacon aspect ratio should be 1:1). | |
const double | projectionAspectRatio |
The minimum value for the ratio of the 2 dimensions of the pink part of the beacon, to be used for projection on the unknown colored part. | |
const int | edgeScanDepth |
The maximum number of pixels which are examined after an edge response has been found for determining the color beyond the edge. | |
unsigned char | minPinkUValue |
The minimum U channel value of a pink pixel. | |
const double | minFlagConfidence |
A confidence threshold used to determine if a target beacon, whose type is not completely clear, can be accepted or not. | |
GT2004FlagSpecialist | flagSpecialist |
A flag specialist. | |
const ColorCorrector & | colorCorrector |
The color corrector. |
Definition at line 27 of file GT2004BeaconDetector.h.
|
Definition at line 31 of file GT2004BeaconDetector.h. |
|
Definition at line 125 of file GT2004BeaconDetector.h. |
|
Constructor.
Definition at line 32 of file GT2004BeaconDetector.cpp. |
|
Executes the beacon detection.
Definition at line 60 of file GT2004BeaconDetector.cpp. References Geometry::Line::base, Image::cameraInfo, clusterPinkBeaconParts(), Geometry::Line::direction, flagSpecialist, GT2004FlagSpecialist::getFlagPercept(), Geometry::getIntersectionPointsOfLineAndRectangle(), ImageInfo::horizon, horizontalBaseOffset, horizontalOffsetModifier, imageInf, GT2004FlagSpecialist::init(), LINE, ImageInfo::maxImageCoordinates, numOfBeaconCandidates, numOfHorizontalScanLineAbove, numOfHorizontalScanLineBelow, scanForPink(), ImageInfo::vertLine, Vector2< V >::x, and Vector2< V >::y. Referenced by GT2004ImageProcessor::execute(). |
Here is the call graph for this function:
|
Gains information about pink from the current color table.
Definition at line 883 of file GT2004BeaconDetector.cpp. References minPinkUValue, and Vector3< V >::y. Referenced by GT2004ImageProcessor::GT2004ImageProcessor(), and GT2004ImageProcessor::handleMessage(). |
|
Adds a pink run to the list of candidates.
Definition at line 183 of file GT2004BeaconDetector.cpp. References beaconCandidates, Run::end, MAX_NUMBER_OF_PINK_RUNS, numOfBeaconCandidates, Run::scanLineStart, and Run::start. Referenced by scanForPink(). |
|
Scans along a line.
Definition at line 111 of file GT2004BeaconDetector.cpp. References addCandidate(), COLOR_CLASS, ColorCorrector::correct(), Run::end, BresenhamLineScan::getNext(), Image::image, BresenhamLineScan::init(), Run::length, LINE, minPinkRunLength, minPinkUValue, BresenhamLineScan::numberOfPixels, Run::scanLineStart, Run::start, U(), V(), Vector2< int >::x, Vector2< V >::x, Vector2< int >::y, Vector2< V >::y, and Y(). Referenced by execute(). |
Here is the call graph for this function:
|
Scans for one other beacon part.
Definition at line 837 of file GT2004BeaconDetector.cpp. References COLOR_CLASS, colorClass, DOT, edgeDetectionU, edgeDetectionV, edgeScanDepth, BresenhamLineScan::getNext(), Image::image, BresenhamLineScan::init(), SUSANEdgeDetectionLite::isEdgePoint(), noColor, BresenhamLineScan::numberOfPixels, Vector2< V >::x, and Vector2< V >::y. Referenced by scanForBeaconEdges(). |
Here is the call graph for this function:
|
Clusters the pink elements to find the pink beacon parts.
Definition at line 203 of file GT2004BeaconDetector.cpp. References analyzeBeacon(), Vector2< double >::angle(), beaconCandidates, clusteringAspectRatio, clusteringDistanceTolerance, Geometry::Line::direction, TransformedRun::end, ImageInfo::horizon, imageInf, LINE, numOfBeaconCandidates, Run::scanLineStart, TransformedRun::start, TransformedRun::transform(), transformedCandidates, Matrix2x2< V >::transpose(), Vector2< V >::x, Vector2< double >::x, Vector2< V >::y, Vector2< double >::y, and Vector2< int >::y. Referenced by execute(). |
Here is the call graph for this function:
|
Tries to detect a beacon near a pink part.
Definition at line 393 of file GT2004BeaconDetector.cpp. References imageInf. Referenced by clusterPinkBeaconParts(). |
|
Looks for the vertical edges and the color type of a beacon.
Definition at line 492 of file GT2004BeaconDetector.cpp. References Vector2< V >::abs(), Vector2< double >::angle(), Geometry::Line::base, COLOR_CLASS, colorClass, Geometry::Line::direction, DOT, flagSpecialist, Geometry::getIntersectionPointsOfLineAndRectangle(), highReliability, ImageInfo::horizon, Image::image, imageInf, lowReliability, ImageInfo::maxImageCoordinates, mediumReliability, noColor, projectionAspectRatio, scanForBeaconPart(), GT2004FlagSpecialist::searchFlags(), ImageInfo::vertLine, Vector2< V >::x, Vector2< double >::x, Vector2< V >::y, and Vector2< double >::y. |
Here is the call graph for this function:
|
Edge detection operators (U and V components) used to find the boundaries of flags.
Definition at line 50 of file GT2004BeaconDetector.h. Referenced by scanForBeaconPart(). |
|
Definition at line 51 of file GT2004BeaconDetector.h. Referenced by scanForBeaconPart(). |
|
The image.
Definition at line 54 of file GT2004BeaconDetector.h. |
|
The camera matrix.
Definition at line 56 of file GT2004BeaconDetector.h. |
|
The previous camera matrix.
Definition at line 58 of file GT2004BeaconDetector.h. |
|
Additional Image information.
Definition at line 60 of file GT2004BeaconDetector.h. Referenced by analyzeBeacon(), clusterPinkBeaconParts(), execute(), and scanForBeaconEdges(). |
|
The color table.
Definition at line 62 of file GT2004BeaconDetector.h. |
|
The landmarks percept.
Definition at line 64 of file GT2004BeaconDetector.h. |
|
The number of possible beacons.
Definition at line 66 of file GT2004BeaconDetector.h. Referenced by addCandidate(), clusterPinkBeaconParts(), and execute(). |
|
The list of candidates.
Definition at line 68 of file GT2004BeaconDetector.h. Referenced by addCandidate(), and clusterPinkBeaconParts(). |
|
A buffer for transformed candidates.
Definition at line 70 of file GT2004BeaconDetector.h. Referenced by clusterPinkBeaconParts(). |
|
The base offset for horizontal scan lines.
Definition at line 72 of file GT2004BeaconDetector.h. Referenced by execute(). |
|
The number of horizontal scan lines above the horizon.
Definition at line 74 of file GT2004BeaconDetector.h. Referenced by execute(). |
|
The number of horizontal scan lines below the horizon.
Definition at line 76 of file GT2004BeaconDetector.h. Referenced by execute(). |
|
The growth factor of the distance between two scan lines.
Definition at line 78 of file GT2004BeaconDetector.h. Referenced by execute(). |
|
The maximum distance between the merged runs.
Definition at line 80 of file GT2004BeaconDetector.h. Referenced by clusterPinkBeaconParts(). |
|
The minimum length of a pink run.
Definition at line 82 of file GT2004BeaconDetector.h. Referenced by scanForPink(). |
|
The maximum vertical distance of scanlines to be clustered, over the estimated merged horizontal distance (half beacon aspect ratio should be 1:1).
Definition at line 85 of file GT2004BeaconDetector.h. Referenced by clusterPinkBeaconParts(). |
|
The minimum value for the ratio of the 2 dimensions of the pink part of the beacon, to be used for projection on the unknown colored part.
Definition at line 88 of file GT2004BeaconDetector.h. Referenced by scanForBeaconEdges(). |
|
The maximum number of pixels which are examined after an edge response has been found for determining the color beyond the edge.
Definition at line 91 of file GT2004BeaconDetector.h. Referenced by scanForBeaconPart(). |
|
The minimum U channel value of a pink pixel.
Definition at line 93 of file GT2004BeaconDetector.h. Referenced by analyzeColorTable(), and scanForPink(). |
|
A confidence threshold used to determine if a target beacon, whose type is not completely clear, can be accepted or not.
Definition at line 96 of file GT2004BeaconDetector.h. |
|
A flag specialist.
Definition at line 98 of file GT2004BeaconDetector.h. Referenced by execute(), and scanForBeaconEdges(). |
|
The color corrector.
Definition at line 100 of file GT2004BeaconDetector.h. |