recadrer et Enregistrer le ROI en tant que nouvelle image dans OpenCV 2.4.2 utilisation de cv::Mat

De travail sur la Détection des visages et la Reconnaissance, et après le succès de la détection d'un visage, je veux juste pour recadrer le visage et le sauvegarder quelque part dans le lecteur pour lui donner le code de reconnaissance. Je vais avoir dur moment à faire l'économie de la Région d'Intérêt en tant que nouvelle image. J'ai eu quelques codes en ligne, mais il est écrit dans la précédente version d'OpenCV qui utilise IplImage*. Je suis à l'aide d'OpenCV 2.4.2 qui utilise cv::Mat.
Heeeelp!!!
Je vais poster mes codes(détection de Visage et de Reconnaissance de soi) les gars si vous le souhaitez.

#include <cv.h>
#include <highgui.h>
#include <math.h>

//alphablend <imageA> <image B> <x> <y> <width> <height>
//<alpha> <beta>

IplImage* crop( IplImage* src,  CvRect roi)
{

  //Must have dimensions of output image
  IplImage* cropped = cvCreateImage( cvSize(roi.width,roi.height), src->depth, src->nChannels );

  //Say what the source region is
  cvSetImageROI( src, roi );

  //Do the copy
  cvCopy( src, cropped );
  cvResetImageROI( src );

  cvNamedWindow( "check", 1 );
  cvShowImage( "check", cropped );
  cvSaveImage ("style.jpg" , cropped);

  return cropped;
}

int main(int argc, char** argv)
{
  IplImage *src1, *src2;

  CvRect myRect;

  //IplImage* cropped ;
  src1=cvLoadImage(argv[1],1);
  src2=cvLoadImage(argv[2],1);

  {
    int x = atoi(argv[3]);
    int y = atoi(argv[4]);
    int width = atoi(argv[5]);
    int height = atoi(argv[6]);

    double alpha = (double)atof(argv[7]);
    double beta = (double)atof(argv[8]);

    cvSetImageROI(src1, cvRect(x,y,width,height));
    cvSetImageROI(src2, cvRect(100,200,width,height));

    myRect = cvRect(x,y,width,height) ;

    cvAddWeighted(src1, alpha, src2, beta,0.0,src1);

    cvResetImageROI(src1);
    crop (src1 , myRect);

    cvNamedWindow( "Alpha_blend", 1 );
    cvShowImage( "Alpha_blend", src1 );

    cvWaitKey(0);
  }

  return 0;
}

Grâce. La paix

Dans le opencv dossier tutoriel, il y a un code sur la détection de visage. Considérer que l'on. Vous devrez utiliser cv::imwrite pour enregistrer le fichier.
Avez-vous encore le code de la reconnaissance, de culture et de détection? J'ai exactement le même projet!

OriginalL'auteur Sisay | 2013-04-15