11

openCv IplImage のトリミングで問題が発生しました。tmp と img の両方が IplImage* であると仮定します。コードの使用:

printf("Orig dimensions: %dx%d\n", img->width, img->height);
cvSetImageROI(img, cvRect(0, 0,500,500));
tmp = cvCreateImage(cvGetSize(img),img->depth,img->nChannels);
cvCopy(img, tmp, NULL);
cvResetImageROI(img);
img = cvCloneImage(tmp);
printf("Orig dimensions after crop: %dx%d\n", tmp->width, tmp->height);

上記の cvRect を使用すると、予想どおり 500 x 500 のサイズでトリミングされた画像が得られますが、rect (400,400,500,500) を使用すると、サイズが 500 X 320 の画像が得られます。

4

4 に答える 4

34

cvRect( int x, int y, int width, int height )ではなくとして定義され(int left, int top, int right, int bottom)ます。したがって、ポイントから始まる 500x500 の領域を選択しています(x,y) = (400,400)。あなたの画像の高さは720だと思います;)。

于 2013-01-16T18:53:33.520 に答える