const LandmarkCollectionDataPtr ImageTransformer::TransformCollectionUsingFaceCrop(const LandmarkCollectionDataPtr& collectionData) { LandmarkCollectionDataPtr newCollection(new LandmarkCollectionData(collectionData->CollectionSize())); CascadeClassifier classifier; collectionData->EnumerateConstColectionWithCallback([&] (const ImageLandmarkDataPtr& landmarkData, const int index, bool* stop) { const cv::Rect activeRect = classifier.DetectFace(landmarkData->ImageSource()); if (activeRect.size().width != 0) { const ImageLandmarkDataPtr newData = TransformData(landmarkData, activeRect, {kImageSize, kImageSize}, true); newCollection->AddImageLandmarkData(newData); } else { std::cout<<"Face not found: "<<landmarkData->ImagePath()<<std::endl; } std::cout<<index<<std::endl; }); return newCollection; }