얼굴 인식 및 인식 작업을 수행하고 얼굴을 성공적으로 감지 한 후 얼굴을 자르고 드라이브의 어딘가에 저장하면 그것은 인식 코드입니다. 관심 영역을 새로운 이미지로 저장하는 데 어려움을 겪고 있습니다. 온라인 코드가 있지만 OpenCV의 이전 버전 인 IplImage*
으로 작성되었습니다. 나는 cv::Mat
을 사용하는 OpenCV 2.4.2를 사용하고 있습니다.
Heeeelp !!!
내가 원한다면 내 코드 (얼굴 인식 및 인식 그 자체)를 게시 할 것입니다.OpenCV 2.4.2에서 ROI를 새 이미지로 저장하고 cv :: Mat
#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;
}
감사합니다. 평화
opencv 자습서 폴더에는 얼굴 인식에 대한 코드가 하나 있습니다. 저것을 고려하십시오. 파일을 저장하기 위해서'cv :: imwrite'를 사용할 필요가 있습니다. – Acorbe
인식, 자르기 및 탐지 코드가 여전히 있습니까? 나는 똑같은 프로젝트를 가지고있다! –