view include/cvutils.hpp @ 139:47329bd16cc0

cleaned code, added condition on smooth displacement
author Nicolas Saunier <nicolas.saunier@polymtl.ca>
date Tue, 23 Aug 2011 13:14:47 -0400
parents 3a11dba30655
children b32947b002da
line wrap: on
line source

#ifndef CVUTILS_HPP
#define CVUTILS_HPP

#include "opencv2/core/core.hpp"
#include "opencv2/features2d/features2d.hpp"

class CvCapture;
//template<typename T> class Point_<T>;

/// constant that indicates if the image should be flipped
//static const int flipImage = CV_CVTIMG_FLIP;

template<typename T> 
float scalarProduct(const cv::Point_<T>& v1, const cv::Point_<T>& v2) { return v1.x*v2.x+v1.y*v2.y;}

void keyPoints2Points(const std::vector<cv::KeyPoint>& kpts, std::vector<cv::Point2f>& pts, const bool& clearPts = true);

/** Allocates a new IplImage. */
IplImage* allocateImage(const int& width, const int& height, const int& depth, const int& channels);

IplImage* allocateImage(const CvSize& size, const int& depth, const int& channels);

/** Goes to the target frame number, by querying frame, 
    supposing the video input is currently at current frame number.
    Returns the frame number that was reached.*/
int goToFrameNum(CvCapture* inputVideo, const int& currentFrameNum, const int& targetFrameNum);

/// Pre-defined colors
class Colors {
public:
  static const int nColors = 8;
  static const cv::Scalar color[];

  static cv::Scalar black(void);
  static cv::Scalar red(void);
  static cv::Scalar green(void);
  static cv::Scalar blue(void);
  static cv::Scalar white(void);
  static cv::Scalar magenta(void);
  static cv::Scalar cyan(void);
  static cv::Scalar yellow(void);

  /** Maps integers to primary colors. */
  static cv::Scalar color3(const int& num);
  static cv::Scalar color8(const int& num);
};

#endif