OSVR Framework (Internal Development Docs)  0.6-1962-g59773924
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
osvr::vbtracker::EdgeHoleBasedLedExtractor Class Reference

Public Types

using MatType = cv::Mat
 
using ExternalMatGetterReturn = cv::Mat const &
 
using ContourId = std::size_t
 
using RejectType = std::tuple< ContourId, RejectReason, cv::Point2d >
 
using RejectList = std::vector< RejectType >
 

Public Member Functions

 EdgeHoleBasedLedExtractor (EdgeHoleParams const &extractorParams=EdgeHoleParams())
 
LedMeasurementVec const & operator() (cv::Mat const &gray, BlobParams const &p, bool verboseBlobOutput=false)
 
 ~EdgeHoleBasedLedExtractor ()
 out of line for unique_ptr-based pimpl.
 
void reset ()
 
ExternalMatGetterReturn getInputGrayImage () const
 
ExternalMatGetterReturn getEdgeDetectedImage () const
 
ExternalMatGetterReturn getEdgeDetectedBinarizedImage () const
 
ContourList const & getContours () const
 
LedMeasurementVec const & getMeasurements () const
 
RejectList const & getRejectList () const
 

Detailed Description

Definition at line 70 of file EdgeHoleBasedLedExtractor.h.

Member Function Documentation

LedMeasurementVec const & osvr::vbtracker::EdgeHoleBasedLedExtractor::operator() ( cv::Mat const &  gray,
BlobParams const &  p,
bool  verboseBlobOutput = false 
)

Set up the threshold parameters

Early out - empty image!

Used to do basic thresholding here first to reduce background noise, but turns out that actually produced worse results at the end of the process (presumably by producing very sharp edges)

Edge detection: apply a laplacian filter to this frame

removal of mjpeg artifacts.

Extract beacons from the edge detection image

Definition at line 88 of file EdgeHoleBasedLedExtractor.cpp.


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