Thursday, August 04, 2005

Combine two images

IplImage *img3 = NULL;
CvSize size;
size.width=img1.width+img2.width;
size.height=img1.height;
img3 = cvCreateImage(size, IPL_DEPTH_8U, 1);
for (int i = 0; i < size.height; i++)
{
memcpy(&img3->imageData[i*img3->widthStep],
&img1->imageData[i*img1->widthStep], img1->widthStep);
memcpy(&img3->imageData[i*img3->widthStep+img1->widthStep],
&img2->imageData[i*img2->widthStep], img2->widthStep);
}
memcpy



#include "stdafx.h"
#include "cv.h"
#include "highgui.h"
#include <string.h>

int main( int argc, char** argv )
{
IplImage* img1;
img1 = cvLoadImage("lena.jpg");
IplImage* img2;
img2 = cvLoadImage("lena2.jpg");

IplImage *img3;
CvSize size, size1, size2;

size1 = cvGetSize(img1);
size2 = cvGetSize(img2);

size.width = size1.width + size2.width;
size.height= size2.height;
img3 = cvCreateImage(size, IPL_DEPTH_8U, 3);

for (int i = 0; i < size.height; i++)
{
memcpy(&img3->imageData[i*img3->widthStep],
&img1->imageData[i*img1->widthStep], img1->widthStep);
memcpy(&img3->imageData[i*img3->widthStep + img1->widthStep],
&img2->imageData[i*img2->widthStep], img2->widthStep);
}

cvWaitKey(0);
cvNamedWindow( "dst2", 1 );
cvShowImage( "dst2", img3 );


cvWaitKey(0);

return 0;
}

1 comment:

  1. Thank you very much. It was really useful for me

    ReplyDelete