实现将文件夹下50幅图片合并到一幅图片中,保存并显示。
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中。
原来和文字沾上边的孩子从来都是不快乐的,