opencv截取一部分并保存

来源:互联网 发布:思迅软件知识库 编辑:程序博客网 时间:2024/06/02 18:26
#include <cstdio>#include <cmath>#include <vector>#include <opencv2/opencv.hpp>#include <fstream>using namespace std ;  using namespace cv;  int main()  {  CvCapture* capture= cvCaptureFromCAM(0) ;  cvQueryFrame(capture); char image_name[13];int i = 0;while(1) {  IplImage* img = cvQueryFrame(capture) ; sprintf(image_name, "%s%d%s", "image", ++i, ".jpg");//保存的图片名  cvSaveImage(image_name,img ) ;  //在视频上画框cv::Mat frame=cv::Mat(img);//cout<<Point((int)(200,300), (int)(30,40));//circle(frame, cv::Point((int)(200,300), (int)(30,40)), 6,cv::Scalar(0, 255, 0));//在目标位置上打圈 rectangle(frame,Rect(300,200,100,80),cv::Scalar(0, 255, 0),2,8,0);//mat类型图片,rect左上角坐标,长和宽,颜色,线宽,线条的类型,坐标点小数点位数imshow("Extracted Frame", frame);        cvWaitKey(25) ;    //在保存的图片上截取IplImage *pSrc = cvLoadImage(image_name, CV_LOAD_IMAGE_COLOR);//cout<<pSrc->width<<" "<<pSrc->height;//原本视频的长宽分别是640,480if(!pSrc){cout<<"图像文件加载失败!";return -1;}CvSize size= cvSize(100,80);//区域大小cvSetImageROI(pSrc,cvRect(300,200,size.width, size.height));//设置源图像ROIIplImage* pDest = cvCreateImage(size,pSrc->depth,pSrc->nChannels);//创建目标图像cvCopy(pSrc,pDest); //复制图像cvResetImageROI(pDest);//源图像用完后,清空ROIcvSaveImage("Roi.jpg",pDest);//保存目标图像}  return 0;  }  

原创粉丝点击