|
|
|
@ -467,7 +467,7 @@ bool HaarEvaluator::Feature :: read( const FileNode& node ) |
|
|
|
|
|
|
|
|
|
HaarEvaluator::HaarEvaluator() |
|
|
|
|
{ |
|
|
|
|
features = new std::vector<Feature>(); |
|
|
|
|
features = makePtr<std::vector<Feature> >(); |
|
|
|
|
} |
|
|
|
|
HaarEvaluator::~HaarEvaluator() |
|
|
|
|
{ |
|
|
|
@ -492,7 +492,7 @@ bool HaarEvaluator::read(const FileNode& node) |
|
|
|
|
|
|
|
|
|
Ptr<FeatureEvaluator> HaarEvaluator::clone() const |
|
|
|
|
{ |
|
|
|
|
HaarEvaluator* ret = new HaarEvaluator; |
|
|
|
|
Ptr<HaarEvaluator> ret = makePtr<HaarEvaluator>(); |
|
|
|
|
ret->origWinSize = origWinSize; |
|
|
|
|
ret->features = features; |
|
|
|
|
ret->featuresPtr = &(*ret->features)[0]; |
|
|
|
@ -582,7 +582,7 @@ bool LBPEvaluator::Feature :: read(const FileNode& node ) |
|
|
|
|
|
|
|
|
|
LBPEvaluator::LBPEvaluator() |
|
|
|
|
{ |
|
|
|
|
features = new std::vector<Feature>(); |
|
|
|
|
features = makePtr<std::vector<Feature> >(); |
|
|
|
|
} |
|
|
|
|
LBPEvaluator::~LBPEvaluator() |
|
|
|
|
{ |
|
|
|
@ -603,7 +603,7 @@ bool LBPEvaluator::read( const FileNode& node ) |
|
|
|
|
|
|
|
|
|
Ptr<FeatureEvaluator> LBPEvaluator::clone() const |
|
|
|
|
{ |
|
|
|
|
LBPEvaluator* ret = new LBPEvaluator; |
|
|
|
|
Ptr<LBPEvaluator> ret = makePtr<LBPEvaluator>(); |
|
|
|
|
ret->origWinSize = origWinSize; |
|
|
|
|
ret->features = features; |
|
|
|
|
ret->featuresPtr = &(*ret->features)[0]; |
|
|
|
@ -662,7 +662,7 @@ bool HOGEvaluator::Feature :: read( const FileNode& node ) |
|
|
|
|
|
|
|
|
|
HOGEvaluator::HOGEvaluator() |
|
|
|
|
{ |
|
|
|
|
features = new std::vector<Feature>(); |
|
|
|
|
features = makePtr<std::vector<Feature> >(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
HOGEvaluator::~HOGEvaluator() |
|
|
|
@ -684,7 +684,7 @@ bool HOGEvaluator::read( const FileNode& node ) |
|
|
|
|
|
|
|
|
|
Ptr<FeatureEvaluator> HOGEvaluator::clone() const |
|
|
|
|
{ |
|
|
|
|
HOGEvaluator* ret = new HOGEvaluator; |
|
|
|
|
Ptr<HOGEvaluator> ret = makePtr<HOGEvaluator>(); |
|
|
|
|
ret->origWinSize = origWinSize; |
|
|
|
|
ret->features = features; |
|
|
|
|
ret->featuresPtr = &(*ret->features)[0]; |
|
|
|
@ -849,7 +849,7 @@ CascadeClassifier::~CascadeClassifier() |
|
|
|
|
|
|
|
|
|
bool CascadeClassifier::empty() const |
|
|
|
|
{ |
|
|
|
|
return oldCascade.empty() && data.stages.empty(); |
|
|
|
|
return !oldCascade && data.stages.empty(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
bool CascadeClassifier::load(const String& filename) |
|
|
|
@ -867,13 +867,13 @@ bool CascadeClassifier::load(const String& filename) |
|
|
|
|
|
|
|
|
|
fs.release(); |
|
|
|
|
|
|
|
|
|
oldCascade = Ptr<CvHaarClassifierCascade>((CvHaarClassifierCascade*)cvLoad(filename.c_str(), 0, 0, 0)); |
|
|
|
|
oldCascade.reset((CvHaarClassifierCascade*)cvLoad(filename.c_str(), 0, 0, 0)); |
|
|
|
|
return !oldCascade.empty(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
int CascadeClassifier::runAt( Ptr<FeatureEvaluator>& evaluator, Point pt, double& weight ) |
|
|
|
|
{ |
|
|
|
|
CV_Assert( oldCascade.empty() ); |
|
|
|
|
CV_Assert( !oldCascade ); |
|
|
|
|
|
|
|
|
|
assert( data.featureType == FeatureEvaluator::HAAR || |
|
|
|
|
data.featureType == FeatureEvaluator::LBP || |
|
|
|
@ -1022,7 +1022,7 @@ bool CascadeClassifier::detectSingleScale( const Mat& image, int stripCount, Siz |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
Mat currentMask; |
|
|
|
|
if (!maskGenerator.empty()) { |
|
|
|
|
if (maskGenerator) { |
|
|
|
|
currentMask=maskGenerator->generateMask(image); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -1097,7 +1097,7 @@ void CascadeClassifier::detectMultiScaleNoGrouping( const Mat& image, std::vecto |
|
|
|
|
{ |
|
|
|
|
candidates.clear(); |
|
|
|
|
|
|
|
|
|
if (!maskGenerator.empty()) |
|
|
|
|
if (maskGenerator) |
|
|
|
|
maskGenerator->initializeMask(image); |
|
|
|
|
|
|
|
|
|
if( maxObjectSize.height == 0 || maxObjectSize.width == 0 ) |
|
|
|
@ -1350,7 +1350,7 @@ bool CascadeClassifier::read(const FileNode& root) |
|
|
|
|
return featureEvaluator->read(fn); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
template<> void Ptr<CvHaarClassifierCascade>::delete_obj() |
|
|
|
|
template<> void DefaultDeleter<CvHaarClassifierCascade>::operator ()(CvHaarClassifierCascade* obj) const |
|
|
|
|
{ cvReleaseHaarClassifierCascade(&obj); } |
|
|
|
|
|
|
|
|
|
} // namespace cv
|
|
|
|
|