89 unsigned int framePyramidPixelThreshold() const noexcept;
95 void setFramePyramidPixelThreshold(
unsigned int framePyramidPixelThreshold) noexcept;
101 unsigned int framePyramidLayers() const noexcept;
107 void setFramePyramidLayers(
unsigned int framePyramidLayers) noexcept;
113 bool useAdaptiveRowSpacing() const noexcept;
121 void setUseAdaptiveRowSpacing(
bool useAdaptiveRowSpacing) noexcept;
127 unsigned int minimumSegmentSize() const noexcept;
134 void setMinimumSegmentSize(
unsigned int minimumSegmentSize) noexcept;
145 unsigned int framePyramidPixelThreshold_ = 640u * 480u;
148 unsigned int framePyramidLayers_ = 3u;
151 bool useAdaptiveRowSpacing_ = true;
154 unsigned int minimumSegmentSize_ = 2u;
182 static
void detectBullseyesSubset(const
Frame* yFrame,
Bullseyes* bullseyes,
Lock* multiThreadLock, const
bool useAdaptiveRowSpacing, const
unsigned int minimumSegmentSize, const
unsigned int pyramidLayer, const
unsigned int firstRow, const
unsigned int numberRows);
192 static
void detectBullseyesInRow(const
Frame& yFrame, const
unsigned int y,
Bullseyes& bullseyes, const
unsigned int minimumSegmentSize, const
unsigned int pyramidLayer = 0u);
205 template <
bool tFindBlackPixel>
206 static
bool findNextUpperPixel(const
Frame& yFrame, const
unsigned int x, const
unsigned int y, const
unsigned int maximalRows, const
unsigned int threshold,
unsigned int& rows);
219 template <
bool tFindBlackPixel>
220 static
bool findNextLowerPixel(const
Frame& yFrame, const
unsigned int x, const
unsigned int y, const
unsigned int maximalRows, const
unsigned int threshold,
unsigned int& rows);
235 static
unsigned int determineThreshold(const uint8_t* yPosition, const
unsigned int segmentSize1, const
unsigned int segmentSize2, const
unsigned int segmentSize3, const
unsigned int segmentSize4, const
unsigned int segmentSize5);
252 static
bool checkBullseyeInColumn(const
Frame& yFrame, const
unsigned int xCenter, const
unsigned int yCenter, const
unsigned int threshold, const
unsigned int blackRingSegmentMin, const
unsigned int blackRingSegmentMax, const
unsigned int whiteRingSegmentMin, const
unsigned int whiteRingSegmentMax, const
unsigned int dotSegmentMin, const
unsigned int dotSegmentMax);
263 static
bool determineAccurateBullseyeLocation(const
Frame& yFrame, const
unsigned int xBullseye, const
unsigned int yBullseye, const
unsigned int threshold,
Vector2& location);
271 static
bool isBlackPixel(const uint8_t* pixel, const uint8_t threshold);
279 static
bool isWhitePixel(const uint8_t* pixel, const uint8_t threshold);
290 static
Vector2 computeSubpixelTransition(const
VectorT2<
unsigned int>& lastPointInside, const
VectorT2<
unsigned int>& firstPointOutside, uint8_t insideIntensity, uint8_t outsideIntensity, const
unsigned int threshold);
299 static
Scalar computeIntensityInterpolationFactor(const uint8_t insideIntensity, const uint8_t outsideIntensity, const
unsigned int threshold);
319 static
Vector2 computeTransitionPointOnRay(const
VectorT2<
unsigned int>& insidePoint, const
VectorT2<
unsigned int>& outsidePoint, const uint8_t insideIntensity, const uint8_t outsideIntensity, const
unsigned int threshold, const
Vector2& center, const
Vector2& rayDirection);
338 static
bool castHalfRay(const uint8_t* yFrameData, const
unsigned int yFrameWidth, const
unsigned int yFrameHeight, const
unsigned int yFrameStrideElements, const
unsigned int xCenter, const
unsigned int yCenter, const
Scalar angle, const
Scalar maxSearchRadius, const uint8_t centerIntensity, const uint8_t grayThreshold,
HalfRay& ray);
353 static
bool checkRadialConsistency(const
Frame& yFrame, const
unsigned int xCenter, const
unsigned int yCenter, const
unsigned int threshold, const
float maxSearchRadius, const
unsigned int numberDiameters, const
Scalar minValidRayFraction, const
Scalar backgroundExtensionFactor, const
Scalar scale =
Scalar(1),
Diameters* diameters =
nullptr);
373 static
bool checkRadialConsistencyPhase1CastRays(const uint8_t* yData, const
unsigned int width, const
unsigned int height, const
unsigned int strideElements, const
unsigned int xCenter, const
unsigned int yCenter, const
unsigned int threshold, const
float maxSearchRadius, const uint8_t centerIntensity, const
unsigned int numberDiameters, const
Scalar minValidRayFraction, const
Scalar scale,
Diameters& diameters);
386 static
bool checkRadialConsistencyPhase2SymmetryValidation(const
unsigned int xCenter, const
unsigned int yCenter, const
unsigned int numberDiameters, const
Scalar minValidRayFraction, const
Scalar scale,
Diameters& diameters);
401 static
bool checkRadialConsistencyPhase3IntensityValidation(const
Frame& yFrame, const
unsigned int threshold, const
unsigned int numberDiameters, const
Scalar backgroundExtensionFactor, const
Scalar scale, const
unsigned int xCenter, const
unsigned int yCenter,
Diameters& diameters);
412 static
bool checkRadialConsistencyPhase4RadialProfileValidation(const
unsigned int xCenter, const
unsigned int yCenter, const
unsigned int numberDiameters, const
Diameters& diameters);
423 static
bool checkRadialConsistencyPhase5RingProportionValidation(const
unsigned int xCenter, const
unsigned int yCenter, const
unsigned int numberDiameters, const
Diameters& diameters);