OpenCV从它的小块重建图像(组合块)

时间:2016-04-10 18:29:23

标签: c opencv

一开始,我有一张照片,我将其剪裁成8 * 8的小块并将它们放在一个矩阵中。我对它们做了一些操作,然后我编码了所有内容。

现在我试图反转这个过程,并且在将块组合成一张图片的过程中我被阻止了。 如果可能,c中是否有{{1}}中的任何函数或方法可以帮助解决我的问题?

感谢。

1 个答案:

答案 0 :(得分:1)

这是解决方案,我发现:

void merging(IplImage* src,IplImage *matrice[64][64]){

IplImage *image;
image = cvCreateImage( cvGetSize(src), matrice[0][0]->depth, matrice[0][0]->nChannels) ;
int roiSize = 8;
int i,j,k,indexW=0,indexH=0;
CvRect rctBlock;
CvScalar p;

rctBlock=cvGetImageROI(matrice[64][64]);
/* printf(" block cannaux%d\n",block->nChannels);
printf(" image cannaux%d\n",image->nChannels);
printf(" width %d\n",rctBlock.width);
printf("height %d\n",rctBlock.height); */


for(i = 0; i < image->width/roiSize; ++i) { 
for(j = 0; j < image->height/roiSize; ++j) {  
    cvSetImageROI(image, cvRect(j*roiSize, i*roiSize, roiSize, roiSize));
    cvCopy(matrice[i][j],image, NULL);
    cvResetImageROI(image);          
    }
}
   // printf("H %d\n",indexH+1);
   //printf("W %d\n",indexW+1);
    cvShowImage("image",image);
    cvReleaseImage(&image);

 }