标签:
实现将文件夹下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中。
标签:
原文地址:http://blog.csdn.net/zyh821351004/article/details/44153395