用以下代码已经实现了,同时获取两个摄像头,并且在两个窗口上显示! 请问怎么样这两个视频窗口能够在一个窗口上显示呢?  谢谢了!!  形成画中画最棒!!
int main()
{
int cam_count; //仅仅获取摄像头数目
cam_count = CCameraDS::CameraCount();
printf("There are %d cameras.\n", cam_count);
//获取所有摄像头的名称
for(int i=0; i < cam_count; i++)
{
char camera_name[1024];  
int retval = CCameraDS::CameraName(i, camera_name, sizeof(camera_name) ); if(retval >0)
printf("Camera #%d's Name is '%s'.\n", i, camera_name);
else
printf("Can not get Camera #%d's name.\n", i);
}
if(cam_count==0)
return -1; CCameraDS camera1,camera2;

if(! camera1.OpenCamera(0)) //第一个摄像头
   {
      fprintf(stderr, "Can not open camera.\n");
      return -1;
   }
      
   
   //打开第二个摄像头
   
   if(! camera2.OpenCamera(2)) //这里选择2是因为本程序运行后0和1都指向同一个摄像头
   {
      fprintf(stderr, "Can not open camera.\n");
      return -1;
   }
   
         
   cvNamedWindow("camera1");
   cvNamedWindow("camera2");   IplImage *img=0;
   IplImage *img1=0;   while(1)
   {
      //获取一帧
      IplImage *img = camera1.QueryFrame();      //显示
      cvShowImage("camera1", img);   
      
      //获取一帧
      IplImage *img1 = camera2.QueryFrame(); //采用两个完全相同的摄像头时,程序在此崩溃      //显示
      cvShowImage("camera2", img1);
   
      if (cvWaitKey(20) == 'q')
         break;
   }
   camera1.CloseCamera(); //可不调用此函数,CCameraDS析构时会自动关闭摄像头   cvDestroyWindow("camera1");   
   camera2.CloseCamera(); //可不调用此函数,CCameraDS析构时会自动关闭摄像头   cvDestroyWindow("camera2");      return 0;
}