void ExtractFeatures(const TDataSet& data_set, TFeatures* features, bool sse_on) { Timer t; t.start(); for (size_t image_idx = 0; image_idx < data_set.size(); ++image_idx) { vector<float> one_image_features; BMP *im = data_set[image_idx].first; uint h = im->TellHeight() - 2, w = im->TellWidth() - 2; Matrix <float> Direct(h, w), Abs(h, w); if (sse_on){ get_dir_abs_SSE(im, Direct, Abs); to_features(Direct, Abs, one_image_features); } else{ get_dir_abs(im, Direct, Abs); to_features(Direct, Abs, one_image_features); } features->push_back(make_pair(one_image_features, data_set[image_idx].second)); } if (sse_on) t.check("SSE ON"); else t.check("SSE OFF"); }