IplImage* gray2 ; // IplImage* srcImg ; IplImage* dstImg ; IplImage* ResultImg; int QRCodeLocalizer::ImageUnite(void ) { int ImageWidth,ImageHeight; int count=0; srcImg = cvLoadImage("/home/agv/QrProcess/QrCodeProcess/data/output/qr60.jpg"); ImageWidth = srcImg->width; ImageHeight = srcImg->height; CvSize dstSize; dstSize.width = srcImg->width *10.0; dstSize.height = srcImg->height *5.0; dstImg = cvCreateImage(dstSize, srcImg->depth, srcImg->nChannels); ResultImg = cvCreateImage(dstSize, srcImg->depth, srcImg->nChannels); for (int ii=50;ii<100;ii++) { char ImageName[100]; sprintf(ImageName,"%s%d%s", "/home/agv/QrProcess/QrCodeProcess/data/output/qr",ii, ".jpg");//保存的图片名 IplImage* srcImg = cvLoadImage(ImageName); cvSetImageROI(dstImg, cvRect(srcImg->width*(count%10),srcImg->height*(count/10), srcImg->width, srcImg->height)); cvCopy(srcImg, dstImg); cvResetImageROI(dstImg); count++; } cvSaveImage("./output/Unite.png",dstImg); cvShowImage("testwindow2",dstImg) ; cv::waitKey(10); }1. 文件路径与图片名问题。
2. 图片尺寸大小的设计。
3. 开辟内存合并操作。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cvSetImageROI函数和cvCopy函数的用法:
cvSetImageROI(IplImage*dst,cvRect(左边界,上边界,宽度,高度))。他的作用是把图像在图像dst中开辟出cvRect矩形框区域大小的内存空间,然后cvCopy(IplImage*src,IplImage*dst)函数会将源图像src复制到目标图像dst中。