opencv cvSetImageROI可用于对图片某个区域的截取,截取后如果还要用原图像,需要用cvReSetImageROI将原图像重置下。
#include <stdio.h>
#include <cv.h>
#include <cxcore.h>
#include <highgui.h>
int main(int argc, char** argv)
{
FILE* fp = fopen("..\\result.txt", "w+");
const char* filename = "..\\gray_diff.jpg";
//img AND img_copy is the same,use to draw different result
IplImage *img1 = cvLoadImage(filename);
cvSetImageROI(img1, cvRect(100, 100, 356, 156));
IplImage *image1 = cvCloneImage(img1);//这里注意用cvCloneImage或者cvCopy,涉及指针问题尽量不要直接用image1=img1去进行赋值,不然图像的释放时候会成为问题
cvShowImage("image1", image1);
cvResetImageROI(img1);
IplImage *image2 = cvCloneImage(img1);
cvShowImage("image2", image2);
cvWaitKey(0);
cvDestroyAllWindows();
return 0;
}