一开始,我有一张照片,我将其剪裁成8 * 8的小块并将它们放在一个矩阵中。我对它们做了一些操作,然后我编码了所有内容。
现在我试图反转这个过程,并且在将块组合成一张图片的过程中我被阻止了。
如果可能,c
中是否有{{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);
}