OpenCV截取图像ROI并保存于指定路径

1.所用主要函数    

http://www.cnblogs.com/zcftech/archive/2013/04/09/3011225.html

OpenCV设置ROI函数  cvSetImageROI( ):

void cvSetImageROI(IplImage* image,CvRect rect);

image        图像头,待处理图像

rect ROI     矩形

释放基于给定的矩形设置图像的ROI函数  cvResetImageROI( ):

void cvResetImageROI(IplImage* image);

 image        图像头,待处理图像

保存图像函数cvSaveImage( );

cvSaveImage(const char* filename, const CvArr* image);

filename     文件名
image        要保存的图像

函数cvSaveImage保存图像到指定文件。只有8位单通道或者3通道(通道顺序为'BGR')可以使用这个函数保存。

如果格式,深度或者通道不符合要求,请先用cvCvtScale和cvCvtColor转换

2.例子:

  1. <span style="font-size:10px;"><span style="font-size:12px;">#include <cv.h>  
  2. #include<highgui.h>  
  3.   
  4. int main()  
  5. {  
  6.     //Loading the original image and declaring the variables  
  7.     IplImage* src=cvLoadImage("D:\\Study Documents\\opencv_source\\images\\lena.jpg");  
  8.     CvSize size=cvSize(100,120);  
  9.     IplImage* roi=cvCreateImage(size,src->depth,src->nChannels);  
  10.     CvRect box=cvRect(120,100,size.width,size.height);  
  11.       
  12.     //Setting the ROI and copying it  
  13.     cvSetImageROI(src,box);  
  14.     cvCopy(src,roi);  
  15.     cvSaveImage("D:\\Study Documents\\opencv_source\\images\\lenaROI.jpg",roi);  
  16.     cvResetImageROI(src);  
  17.       
  18.     //Defining windows  
  19.     cvNamedWindow("ShowSRC");  
  20.     cvNamedWindow("ShowROI");  
  21.       
  22.     //Showing images  
  23.     cvShowImage("ShowSRC",src);  
  24.     cvShowImage("ShowROI",roi);  
  25.   
  26.     cvWaitKey(0);  
  27.       
  28.     //Releasing resources  
  29.     cvReleaseImage(&src);  
  30.     cvReleaseImage(&roi);  
  31.     cvDestroyAllWindows();  
  32.       
  33.     return 0;     
  34. }</span></span>  
<span style="font-size:10px;"><span style="font-size:12px;">#include <cv.h>
#include<highgui.h>

int main()
{
	//Loading the original image and declaring the variables
	IplImage* src=cvLoadImage("D:\\Study Documents\\opencv_source\\images\\lena.jpg");
	CvSize size=cvSize(100,120);
	IplImage* roi=cvCreateImage(size,src->depth,src->nChannels);
	CvRect box=cvRect(120,100,size.width,size.height);
	
	//Setting the ROI and copying it
	cvSetImageROI(src,box);
	cvCopy(src,roi);
	cvSaveImage("D:\\Study Documents\\opencv_source\\images\\lenaROI.jpg",roi);
	cvResetImageROI(src);
	
	//Defining windows
	cvNamedWindow("ShowSRC");
	cvNamedWindow("ShowROI");
	
	//Showing images
	cvShowImage("ShowSRC",src);
	cvShowImage("ShowROI",roi);

	cvWaitKey(0);
	
	//Releasing resources
	cvReleaseImage(&src);
	cvReleaseImage(&roi);
	cvDestroyAllWindows();
	
	return 0;	
}</span></span>






版权声明:本文为qq_36332685原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_36332685/article/details/78565566