/*M///////////////////////////////////////////////////////////////////////////////////////1//2// IMPORTANT: READ BEFORE DOWNLOADING, COPYING, INSTALLING OR USING.3//4// By downloading, copying, installing or using the software you agree to this license.5// If you do not agree to this license, do not download, install,6// copy or use the software.7//8//9// Intel License Agreement10// For Open Source Computer Vision Library11//12// Copyright (C) 2000, Intel Corporation, all rights reserved.13// Third party copyrights are property of their respective owners.14//15// Redistribution and use in source and binary forms, with or without modification,16// are permitted provided that the following conditions are met:17//18// * Redistribution's of source code must retain the above copyright notice,19// this list of conditions and the following disclaimer.20//21// * Redistribution's in binary form must reproduce the above copyright notice,22// this list of conditions and the following disclaimer in the documentation23// and/or other materials provided with the distribution.24//25// * The name of Intel Corporation may not be used to endorse or promote products26// derived from this software without specific prior written permission.27//28// This software is provided by the copyright holders and contributors "as is" and29// any express or implied warranties, including, but not limited to, the implied30// warranties of merchantability and fitness for a particular purpose are disclaimed.31// In no event shall the Intel Corporation or contributors be liable for any direct,32// indirect, incidental, special, exemplary, or consequential damages33// (including, but not limited to, procurement of substitute goods or services;34// loss of use, data, or profits; or business interruption) however caused35// and on any theory of liability, whether in contract, strict liability,36// or tort (including negligence or otherwise) arising in any way out of37// the use of this software, even if advised of the possibility of such damage.38//39//M*/4041/* Haar features calculation */4243#ifndef OPENCV_OBJDETECT_HAAR_HPP44#define OPENCV_OBJDETECT_HAAR_HPP4546#define CV_HAAR_FEATURE_MAX_LOCAL 34748typedef int sumtype;49typedef double sqsumtype;5051typedef struct CvHidHaarFeature52{53struct54{55sumtype *p0, *p1, *p2, *p3;56float weight;57}58rect[CV_HAAR_FEATURE_MAX_LOCAL];59} CvHidHaarFeature;606162typedef struct CvHidHaarTreeNode63{64CvHidHaarFeature feature;65float threshold;66int left;67int right;68} CvHidHaarTreeNode;697071typedef struct CvHidHaarClassifier72{73int count;74//CvHaarFeature* orig_feature;75CvHidHaarTreeNode* node;76float* alpha;77} CvHidHaarClassifier;7879#define calc_sumf(rect,offset) \80static_cast<float>((rect).p0[offset] - (rect).p1[offset] - (rect).p2[offset] + (rect).p3[offset])8182namespace cv_haar_avx83{84#if 0 /*CV_TRY_AVX*/85#define CV_HAAR_USE_AVX 186#else87#define CV_HAAR_USE_AVX 088#endif8990#if CV_HAAR_USE_AVX91// AVX version icvEvalHidHaarClassifier. Process 8 CvHidHaarClassifiers per call. Check AVX support before invocation!!92double icvEvalHidHaarClassifierAVX(CvHidHaarClassifier* classifier, double variance_norm_factor, size_t p_offset);93double icvEvalHidHaarStumpClassifierAVX(CvHidHaarClassifier* classifier, double variance_norm_factor, size_t p_offset);94double icvEvalHidHaarStumpClassifierTwoRectAVX(CvHidHaarClassifier* classifier, double variance_norm_factor, size_t p_offset);95#endif96}9798#endif99100/* End of file. */101102103