程序很简单,主要就是cvSetImageROI()
cvResetImageROI()这两个函数的应用:
// 024 一个窗口显示两张图片.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include<cv.h>
#include<highgui.h>
#include<iostream>
using namespace std;
int main(int argc, char* argv[])
{
IplImage* Image_B=cvLoadImage("Lena.jpg");
IplImage* Image_C=cvLoadImage("baboon.jpg");
CvRect rect=cvRect(100,100,300,300);
cvSetImageROI(Image_B,rect);
cvNamedWindow("Lena",1);
cvShowImage("Lena",Image_B);
cvResetImageROI(Image_B);
IplImage* Image_A=cvCreateImage(cvSize(2*Image_B->width,Image_B->height),8,3);
cout<<"The Width of Image B is "<<Image_B->width<<endl;
cout<<"The Height of Image B is "<<Image_B->height<<endl;
cout<<"The Width of Image C is "<<Image_C->width<<endl;
cout<<"The Height of Image C is "<<Image_C->height<<endl;
//设置感兴趣区域,把图片B拷进去
CvRect Rect_B=cvRect(0,0,512,512);
cvSetImageROI(Image_A,Rect_B);
cvCopy(Image_B,Image_A);
//设置感兴趣区域,把图片C拷进去
CvRect Rect_C=cvRect(512,0,1024,512);
cvSetImageROI(Image_A,Rect_C);
cvCopy(Image_C,Image_A);
//释放ROI,否则只会显示最后一个设置的感兴趣区域
cvResetImageROI(Image_A);
cvNamedWindow("Merge",1);
cvShowImage("Merge",Image_A);
cvWaitKey(0);
return 0;
}
运行结果: