#ifndef __OPENCV_CUDAOBJDETECT_HPP__
#define __OPENCV_CUDAOBJDETECT_HPP__
#ifndef __cplusplus
# error cudaobjdetect.hpp header must be compiled as C++
#endif
#include "opencv2/core/cuda.hpp"
namespace cv { namespace cuda {
class CV_EXPORTS HOG : public Algorithm
{
public:
enum
{
DESCR_FORMAT_ROW_BY_ROW,
DESCR_FORMAT_COL_BY_COL
};
static Ptr<HOG> create(Size win_size = Size(64, 128),
Size block_size = Size(16, 16),
Size block_stride = Size(8, 8),
Size cell_size = Size(8, 8),
int nbins = 9);
virtual void setWinSigma(double win_sigma) = 0;
virtual double getWinSigma() const = 0;
virtual void setL2HysThreshold(double threshold_L2hys) = 0;
virtual double getL2HysThreshold() const = 0;
virtual void setGammaCorrection(bool gamma_correction) = 0;
virtual bool getGammaCorrection() const = 0;
virtual void setNumLevels(int nlevels) = 0;
virtual int getNumLevels() const = 0;
virtual void setHitThreshold(double hit_threshold) = 0;
virtual double getHitThreshold() const = 0;
virtual void setWinStride(Size win_stride) = 0;
virtual Size getWinStride() const = 0;
virtual void setScaleFactor(double scale0) = 0;
virtual double getScaleFactor() const = 0;
virtual void setGroupThreshold(int group_threshold) = 0;
virtual int getGroupThreshold() const = 0;
virtual void setDescriptorFormat(int descr_format) = 0;
virtual int getDescriptorFormat() const = 0;
virtual size_t getDescriptorSize() const = 0;
virtual size_t getBlockHistogramSize() const = 0;
virtual void setSVMDetector(InputArray detector) = 0;
virtual Mat getDefaultPeopleDetector() const = 0;
virtual void detect(InputArray img,
std::vector<Point>& found_locations,
std::vector<double>* confidences = NULL) = 0;
virtual void detectMultiScale(InputArray img,
std::vector<Rect>& found_locations,
std::vector<double>* confidences = NULL) = 0;
virtual void compute(InputArray img,
OutputArray descriptors,
Stream& stream = Stream::Null()) = 0;
};
class CV_EXPORTS CascadeClassifier : public Algorithm
{
public:
static Ptr<CascadeClassifier> create(const String& filename);
static Ptr<CascadeClassifier> create(const FileStorage& file);
virtual void setMaxObjectSize(Size maxObjectSize) = 0;
virtual Size getMaxObjectSize() const = 0;
virtual void setMinObjectSize(Size minSize) = 0;
virtual Size getMinObjectSize() const = 0;
virtual void setScaleFactor(double scaleFactor) = 0;
virtual double getScaleFactor() const = 0;
virtual void setMinNeighbors(int minNeighbors) = 0;
virtual int getMinNeighbors() const = 0;
virtual void setFindLargestObject(bool findLargestObject) = 0;
virtual bool getFindLargestObject() = 0;
virtual void setMaxNumObjects(int maxNumObjects) = 0;
virtual int getMaxNumObjects() const = 0;
virtual Size getClassifierSize() const = 0;
virtual void detectMultiScale(InputArray image,
OutputArray objects,
Stream& stream = Stream::Null()) = 0;
virtual void convert(OutputArray gpu_objects,
std::vector<Rect>& objects) = 0;
};
}}
#endif