Darwin  1.10(beta)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
drwnTemplateMatcher Class Reference

Utility class for computing multiple template matches. More...

Public Member Functions

 drwnTemplateMatcher ()
 default constructor
 
 drwnTemplateMatcher (const drwnTemplateMatcher &tm)
 copy constructor
 
void clear ()
 clears all templates and buffered storage
 
bool empty () const
 returns true if there are no templates
 
int size () const
 returns the number of templates
 
int width () const
 returns the width of the largest template
 
int height () const
 returns the height of the largest template
 
void reset ()
 release internal memory (keeps templates)
 
void addTemplate (cv::Mat &t)
 Add templates to the object. The difference between addTemplate and copyTemplate is that the former takes does not make a copy so changes by the calling function will be corrupt the data. Templates should be single channel 32-bit floating point.
 
void addTemplates (vector< cv::Mat > &t)
 See above.
 
void copyTemplate (const cv::Mat &t)
 See above.
 
void copyTemplates (const vector< cv::Mat > &t)
 See above.
 
vector< cv::Mat > responses (const cv::Mat &img, int method=CV_TM_CCORR)
 Response images are all generate to be the same size as the original image. Boundaries are zero-padded. Caller is responsible for freeing memory. Functions without image argument use the previously loaded image.
 
vector< cv::Mat > responses (int method=CV_TM_CCORR)
 See above.
 
cv::Mat response (const cv::Mat &img, unsigned tid, int method=CV_TM_CCORR)
 See above.
 
cv::Mat response (unsigned tid, int method=CV_TM_CCORR)
 See above.
 
drwnTemplateMatcheroperator= (const drwnTemplateMatcher &tm)
 assignment operator
 
const cv::Mat & operator[] (unsigned i) const
 returns the i-th template
 

Protected Member Functions

void cacheDFTAndIntegrals (const cv::Mat &image)
 caches all buffered data for a given image
 

Protected Attributes

vector< cv::Mat > _templates
 vector of templates to match
 
vector< pair< double, double > > _templateStats
 template mean and energy
 
cv::Size _largestTemplate
 dimensions of the largest template
 
cv::Size _imgSize
 size of image being buffered
 
vector< cv::Mat > _dftTemplates
 buffered templates in fourier space
 
cv::Mat _dftImage
 buffered image in fourier space
 
cv::Mat _dftResponse
 buffer for response image
 
cv::Mat _imgSum
 buffer for integral image
 
cv::Mat _imgSqSum
 buffer for integral square image
 

Detailed Description

Utility class for computing multiple template matches.

The instantiated object pre-computes template (and image) DFTs to allow for faster matching on multiple images (of the same size). However, the code is very memory intensive. Call the drwnTemplateMatcher::reset function to release the internal buffers.


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