OpenCV  4.10.0-dev
Open Source Computer Vision
No Matches
Public Member Functions | Static Public Member Functions | List of all members
cv::xfeatures2d::LATCH Class Referenceabstract

#include <opencv2/xfeatures2d.hpp>

Collaboration diagram for cv::xfeatures2d::LATCH:

Public Member Functions

virtual int getBytes () const =0
String getDefaultName () const CV_OVERRIDE
virtual int getHalfSSDsize () const =0
virtual bool getRotationInvariance () const =0
virtual double getSigma () const =0
virtual void setBytes (int bytes)=0
virtual void setHalfSSDsize (int half_ssd_size)=0
virtual void setRotationInvariance (bool rotationInvariance)=0
virtual void setSigma (double sigma)=0
- Public Member Functions inherited from cv::Feature2D
virtual ~Feature2D ()
virtual void compute (InputArray image, std::vector< KeyPoint > &keypoints, OutputArray descriptors)
 Computes the descriptors for a set of keypoints detected in an image (first variant) or image set (second variant).
virtual void compute (InputArrayOfArrays images, std::vector< std::vector< KeyPoint > > &keypoints, OutputArrayOfArrays descriptors)
virtual int defaultNorm () const
virtual int descriptorSize () const
virtual int descriptorType () const
virtual void detect (InputArray image, std::vector< KeyPoint > &keypoints, InputArray mask=noArray())
 Detects keypoints in an image (first variant) or image set (second variant).
virtual void detect (InputArrayOfArrays images, std::vector< std::vector< KeyPoint > > &keypoints, InputArrayOfArrays masks=noArray())
virtual void detectAndCompute (InputArray image, InputArray mask, std::vector< KeyPoint > &keypoints, OutputArray descriptors, bool useProvidedKeypoints=false)
virtual bool empty () const CV_OVERRIDE
 Return true if detector object is empty.
virtual void read (const FileNode &) CV_OVERRIDE
 Reads algorithm parameters from a file storage.
void read (const String &fileName)
void write (const Ptr< FileStorage > &fs, const String &name) const
void write (const String &fileName) const
virtual void write (FileStorage &) const CV_OVERRIDE
 Stores algorithm parameters in a file storage.
void write (FileStorage &fs, const String &name) const
- Public Member Functions inherited from cv::Algorithm
 Algorithm ()
virtual ~Algorithm ()
virtual void clear ()
 Clears the algorithm state.
virtual void save (const String &filename) const
void write (const Ptr< FileStorage > &fs, const String &name=String()) const
void write (FileStorage &fs, const String &name) const

Static Public Member Functions

static Ptr< LATCHcreate (int bytes=32, bool rotationInvariance=true, int half_ssd_size=3, double sigma=2.0)
- Static Public Member Functions inherited from cv::Algorithm
template<typename _Tp >
static Ptr< _Tpload (const String &filename, const String &objname=String())
 Loads algorithm from the file.
template<typename _Tp >
static Ptr< _TploadFromString (const String &strModel, const String &objname=String())
 Loads algorithm from a String.
template<typename _Tp >
static Ptr< _Tpread (const FileNode &fn)
 Reads algorithm from the file node.

Additional Inherited Members

- Protected Member Functions inherited from cv::Algorithm
void writeFormat (FileStorage &fs) const

Detailed Description

latch Class for computing the LATCH descriptor. If you find this code useful, please add a reference to the following paper in your work: Gil Levi and Tal Hassner, "LATCH: Learned Arrangements of Three Patch Codes", arXiv preprint arXiv:1501.03719, 15 Jan. 2015

LATCH is a binary descriptor based on learned comparisons of triplets of image patches.

bytes is the size of the descriptor - can be 64, 32, 16, 8, 4, 2 or 1 rotationInvariance - whether or not the descriptor should compansate for orientation changes. half_ssd_size - the size of half of the mini-patches size. For example, if we would like to compare triplets of patches of size 7x7x then the half_ssd_size should be (7-1)/2 = 3. sigma - sigma value for GaussianBlur smoothing of the source image. Source image will be used without smoothing in case sigma value is 0.

Note: the descriptor can be coupled with any keypoint extractor. The only demand is that if you use set rotationInvariance = True then you will have to use an extractor which estimates the patch orientation (in degrees). Examples for such extractors are ORB and SIFT.

Note: a complete example can be found under /samples/cpp/tutorial_code/xfeatures2D/latch_match.cpp

Member Function Documentation

◆ create()

static Ptr< LATCH > cv::xfeatures2d::LATCH::create ( int  bytes = 32,
bool  rotationInvariance = true,
int  half_ssd_size = 3,
double  sigma = 2.0 
cv.xfeatures2d.LATCH.create([, bytes[, rotationInvariance[, half_ssd_size[, sigma]]]]) -> retval
cv.xfeatures2d.LATCH_create([, bytes[, rotationInvariance[, half_ssd_size[, sigma]]]]) -> retval

◆ getBytes()

virtual int cv::xfeatures2d::LATCH::getBytes ( ) const
pure virtual
cv.xfeatures2d.LATCH.getBytes() -> retval

◆ getDefaultName()

String cv::xfeatures2d::LATCH::getDefaultName ( ) const
cv.xfeatures2d.LATCH.getDefaultName() -> retval

Returns the algorithm string identifier. This string is used as top level xml/yml node tag when the object is saved to a file or string.

Reimplemented from cv::Feature2D.

◆ getHalfSSDsize()

virtual int cv::xfeatures2d::LATCH::getHalfSSDsize ( ) const
pure virtual
cv.xfeatures2d.LATCH.getHalfSSDsize() -> retval

◆ getRotationInvariance()

virtual bool cv::xfeatures2d::LATCH::getRotationInvariance ( ) const
pure virtual
cv.xfeatures2d.LATCH.getRotationInvariance() -> retval

◆ getSigma()

virtual double cv::xfeatures2d::LATCH::getSigma ( ) const
pure virtual
cv.xfeatures2d.LATCH.getSigma() -> retval

◆ setBytes()

virtual void cv::xfeatures2d::LATCH::setBytes ( int  bytes)
pure virtual
cv.xfeatures2d.LATCH.setBytes(bytes) -> None

◆ setHalfSSDsize()

virtual void cv::xfeatures2d::LATCH::setHalfSSDsize ( int  half_ssd_size)
pure virtual
cv.xfeatures2d.LATCH.setHalfSSDsize(half_ssd_size) -> None

◆ setRotationInvariance()

virtual void cv::xfeatures2d::LATCH::setRotationInvariance ( bool  rotationInvariance)
pure virtual
cv.xfeatures2d.LATCH.setRotationInvariance(rotationInvariance) -> None

◆ setSigma()

virtual void cv::xfeatures2d::LATCH::setSigma ( double  sigma)
pure virtual
cv.xfeatures2d.LATCH.setSigma(sigma) -> None

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