Example #1
0
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;
}