int Detector::detect(const Mat &image, int max_num, CB_RectT *pt_rects, int &subwin_count) { int image_w = image.cols; int image_h = image.rows; int feature_types = ptr_model->p_ft_param->getFeatureTypes(); IntegralImage intg; intg.init(image_w, image_h, feature_types); intg.compute(image.data); int num = detect(intg, max_num, pt_rects, subwin_count); return num; }
int PositiveExtractor::extractSamples(const TrainParamsT *pt_params) { IntegralImage intg; _chdir(pt_params->positive_pool_dir.c_str()); CFileFind file_finder; bool is_working = file_finder.FindFile(); int count = 0; while (is_working) { is_working = file_finder.FindNextFile(); string file_name = file_finder.GetFileName(); string file_path = file_finder.GetFilePath(); if (file_name == "." || file_name == ".."|| file_name == "Thumbs.db") { continue; } printf("%s\n", file_path.c_str()); Mat image = imread(file_path, CV_LOAD_IMAGE_GRAYSCALE); if (image.data == NULL) { continue; } int width = image.cols; int height = image.rows; if (width < pt_params->template_w || height < pt_params->template_h) { continue; } intg.init(width, height, pt_params->feature_type); intg.compute(image.data); intg.save(pt_params->positive_data_path); count++; } return count; }