Image Component Library (ICL)
|
Tool-class for detecting tilted quads in images. More...
#include <QuadDetector.h>
Public Types | |
enum | QuadColor { BlackOnly, WhiteOnly, BlackAndWhite } |
enum, that helps to specify what quads are searched in the threshold-result image More... | |
typedef std::vector< utils::Point32f > | PVec |
internal typedef for vector of points More... | |
typedef std::vector< PVec > | PVecVec |
internal typedef for vector of vector of points More... | |
Public Types inherited from icl::utils::Configurable | |
typedef Function< void, const Property & > | Callback |
Function type for changed properties. More... | |
Public Member Functions | |
QuadDetector (QuadColor c=BlackOnly, bool dynamic=false, float minQRating=0.4) | |
Base constructor. More... | |
~QuadDetector () | |
Destructor. More... | |
const std::vector< TiltedQuad > & | detect (const core::ImgBase *image) |
apply-method, that extracts quad-like structures in the input image More... | |
const core::Img8u & | getLastBinaryImage () const |
returns the last binary image that was produced internally More... | |
icl::cv::RegionDetector * | getRegionDetector () |
returns the internal region detector instance More... | |
const PVecVec & | getAllCorners () const |
returns all corners (const) More... | |
PVecVec & | getAllCorners () |
returns all corners More... | |
const PVecVec & | getLongestCorners () const |
returns longest corners (const) More... | |
PVecVec & | getLongestCorners () |
returns longest corners More... | |
const PVecVec & | getSecLongestCorners () const |
returns 2nd longest corners (const) More... | |
PVecVec & | getSecLongestCorners () |
returns 2nd longest corners More... | |
const PVecVec & | getInterCorners () const |
return inter? conrners (const) More... | |
PVecVec & | getInterCorners () |
return inter? conrners More... | |
const PVecVec & | getPerpCorners () const |
returns perpendicular corners (const) More... | |
PVecVec & | getPerpCorners () |
returns perpendicular corners More... | |
const PVecVec & | getMirrorCorners () const |
returns mirror corners (const) More... | |
PVecVec & | getMirrorCorners () |
returns mirror corners (const) More... | |
std::vector< utils::Point32f > | computeCorners (const cv::ImageRegion &r) const |
computes corners for the given image region More... | |
Public Member Functions inherited from icl::utils::Configurable | |
virtual | ~Configurable () |
virtual destructor More... | |
Configurable (const Configurable &other) | |
Copy constructor. More... | |
Configurable & | operator= (const Configurable &other) |
Assignment operator. More... | |
void | setConfigurableID (const std::string &ID) |
sets the ID of this configurable More... | |
const std::string & | getConfigurableID () const |
returns the configurables static ID More... | |
bool | isOrderedFlagSet () const |
returns whether the ordered flag is set More... | |
void | deactivateProperty (const std::string &pattern) |
adds an additional deativation pattern More... | |
void | deleteDeactivationPattern (const std::string &pattern) |
removed a formerly added deactivation pattern More... | |
std::vector< std::string > | getPropertyListWithoutDeactivated () const |
this returns a filtered list of properties (using all filters added by deactivateProperty) More... | |
virtual void | adaptProperty (const std::string &name, const std::string &newType, const std::string &newInfo, const std::string &newToolTip) |
this function can be used to adapt a specific property afterwards More... | |
void | registerCallback (const Callback &cb) |
add a callback for changed properties More... | |
void | removedCallback (const Callback &cb) |
removes a callback that was registered before More... | |
void | syncChangesTo (Configurable *others, int num=1) |
this can be used to let this instance also apply property changes to others More... | |
virtual void | setPropertyValue (const std::string &propertyName, const Any &value) |
sets a property value More... | |
virtual std::vector< std::string > | getPropertyList () const |
returns a list of All properties, that can be set using setProperty More... | |
virtual bool | supportsProperty (const std::string &propertyName) const |
base implementation for property check (seaches in the property list) More... | |
virtual void | saveProperties (const std::string &filename, const std::vector< std::string > &propertiesToSkip=EMPTY_VEC) const |
writes all available properties into a file More... | |
virtual void | loadProperties (const std::string &filename, const std::vector< std::string > &propertiesToSkip=EMPTY_VEC) |
reads a camera config file from disc More... | |
virtual std::string | getPropertyType (const std::string &propertyName) const |
get type of property More... | |
virtual std::string | getPropertyInfo (const std::string &propertyName) const |
get information of a properties valid values More... | |
virtual Any | getPropertyValue (const std::string &propertyName) const |
returns the current value of a property or a parameter More... | |
virtual std::string | getPropertyToolTip (const std::string &propertyName) const |
returns the tooltip description for a given property More... | |
virtual int | getPropertyVolatileness (const std::string &propertyName) const |
Returns whether this property may be changed internally. More... | |
Private Attributes | |
Data * | data |
Internal data pointer (hidden) More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from icl::utils::Configurable | |
static std::string | create_default_ID (const std::string &prefix) |
this function can be used in subclasses to create a default ID More... | |
static Configurable * | get (const std::string &id) |
returns configurable by given ID More... | |
static void | register_configurable_type (const std::string &classname, Function< Configurable * > creator) |
registers a configurable type More... | |
static std::vector< std::string > | get_registered_configurables () |
returns a list of all registered configurable classnames More... | |
static Configurable * | create_configurable (const std::string &classname) |
creates a configurable by given name More... | |
Static Public Attributes inherited from icl::utils::Configurable | |
static const std::vector< std::string > | EMPTY_VEC |
used as shortcut – just an empty vector of std::strings More... | |
Protected Member Functions inherited from icl::utils::Configurable | |
void | addProperty (const std::string &name, const std::string &type, const std::string &info, const Any &value=Any(), const int volatileness=0, const std::string &tooltip=std::string()) |
This can be used by derived classes to store supported properties in the internal list. More... | |
void | addChildConfigurable (Configurable *configurable, const std::string &childPrefix="") |
This adds another configurable as child. More... | |
void | removeChildConfigurable (Configurable *configurable) |
removes the given child configurable More... | |
Property & | prop (const std::string &propertyName) |
this CAN be used e.g. to store a property value in internal property-list More... | |
const Property & | prop (const std::string &propertyName) const |
this CAN be used e.g. to store a property value in internal property-list More... | |
Configurable (const std::string &ID="", bool ordered=true) | |
create this configurable with given ID More... | |
void | call_callbacks (const std::string &propertyName, const Configurable *caller) const |
calls all registered callbacks More... | |
Protected Member Functions inherited from icl::utils::Uncopyable | |
Uncopyable () | |
Empty base constructor. More... | |
Protected Attributes inherited from icl::utils::Configurable | |
std::vector< Callback > | callbacks |
internally managed list of callbacks More... | |
Tool-class for detecting tilted quads in images.
The quad detector combines usual steps that are used to find quad-like structures in input images.
The QuadDetector combines a local threshold preprocessor, optional further preprocessing steps such as median or morphological operations with an icl::cv::RegionDetector based search for regions with 4 corners.
The QuadDetector forwards the local-threshold and the RegionDetector options. It also adds some extra properties for the post-processing the local-threshold result image before it's passed to the region detector internally
typedef std::vector<utils::Point32f> icl::markers::QuadDetector::PVec |
internal typedef for vector of points
typedef std::vector<PVec> icl::markers::QuadDetector::PVecVec |
internal typedef for vector of vector of points
icl::markers::QuadDetector::QuadDetector | ( | QuadColor | c = BlackOnly , |
bool | dynamic = false , |
||
float | minQRating = 0.4 |
||
) |
Base constructor.
c | the detected quads binary value |
dynamic | if this is set to true, there will be a changable property for the quad color, otherwise, the initial value will remain fixed |
icl::markers::QuadDetector::~QuadDetector | ( | ) |
Destructor.
std::vector<utils::Point32f> icl::markers::QuadDetector::computeCorners | ( | const cv::ImageRegion & | r | ) | const |
computes corners for the given image region
const std::vector<TiltedQuad>& icl::markers::QuadDetector::detect | ( | const core::ImgBase * | image | ) |
apply-method, that extracts quad-like structures in the input image
This method first applys a local threshold to the given input image, which results in a binary icl8u-image. This image is then optionally processed by a median and/or by some morphological operations
const PVecVec& icl::markers::QuadDetector::getAllCorners | ( | ) | const |
returns all corners (const)
PVecVec& icl::markers::QuadDetector::getAllCorners | ( | ) |
returns all corners
const PVecVec& icl::markers::QuadDetector::getInterCorners | ( | ) | const |
return inter? conrners (const)
PVecVec& icl::markers::QuadDetector::getInterCorners | ( | ) |
return inter? conrners
const core::Img8u& icl::markers::QuadDetector::getLastBinaryImage | ( | ) | const |
returns the last binary image that was produced internally
const PVecVec& icl::markers::QuadDetector::getLongestCorners | ( | ) | const |
returns longest corners (const)
PVecVec& icl::markers::QuadDetector::getLongestCorners | ( | ) |
returns longest corners
const PVecVec& icl::markers::QuadDetector::getMirrorCorners | ( | ) | const |
returns mirror corners (const)
PVecVec& icl::markers::QuadDetector::getMirrorCorners | ( | ) |
returns mirror corners (const)
const PVecVec& icl::markers::QuadDetector::getPerpCorners | ( | ) | const |
returns perpendicular corners (const)
PVecVec& icl::markers::QuadDetector::getPerpCorners | ( | ) |
returns perpendicular corners
icl::cv::RegionDetector* icl::markers::QuadDetector::getRegionDetector | ( | ) |
returns the internal region detector instance
const PVecVec& icl::markers::QuadDetector::getSecLongestCorners | ( | ) | const |
returns 2nd longest corners (const)
PVecVec& icl::markers::QuadDetector::getSecLongestCorners | ( | ) |
returns 2nd longest corners
|
private |
Internal data pointer (hidden)