が解決され、私が見つかりました:
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);
}
ご質問が広すぎる、あなたが達成したいものを記述したいくつかのコードと詳細を提供してください。 –
正しいタイプと深さのフルサイズ出力マトリックスを作成します。各ブロックについて、出力行列(rowRangeおよびcolRange)の対応するROIを抽出し、ブロック(copyTo)をこのROIにコピーします。私はC API、おそらくcvGetRows、cvGetCols、cvCopyです。 –
@DanMašek、grossomodoでは良いアイデアですが、問題は、それぞれのブロックの出力マトリックスのROIを抽出しようとするときです。なぜなら、それらはすべて同じサイズなので、基本的には同じROIになります出力行列。今私はスマートなアイデアのアイデアを試しています。 cvGet2DおよびcvSet2Dを使用して、対応するピクセルで完全な出力マトリックスを塗りつぶします。 – mnemonico