Opencv: 将一张图片的部分区域保存成另一张图片

void save_face(IplImage* img, CvRect *face, double scale,const char* file_name) { assert(img!=NULL); assert(face!=NULL); cvSetImageROI( img, cvRect( face->x *scale, /* x = start from leftmost */ face->y *scale, face->width *scale, face->height *scale ) ); //save as 704 * 576 image IplImage *dst = 0; //目标图像指针 CvSize dst_cvsize; //目标图像尺寸 dst_cvsize.width = 704; dst_cvsize.height = 576; dst = cvCreateImage( dst_cvsize, img->depth, img->nChannels); //构造目标图象 cvResize(img, dst, CV_INTER_LINEAR); //缩放源图像到目标图像 cvSaveImage(file_name,dst); } 

 

说明:

 

以上代码以保存一张image个的人脸为例:

关键步骤是 cvSetImageROI(); 即将要保存的区域圈起来,

然后就cvSaveImage() 就可以了

 

上面程序我是要将那块区域保存成 704*576的图片,所以代码有点长。

你可能感兴趣的:(Opencv: 将一张图片的部分区域保存成另一张图片)