0

opencv2 を使用して一連の画像を開いています (raspberry pi で) トランジションが非常にぎくしゃくしています (つまり、画像を開く) これを滑らかにする方法はありますか?
以下のコード スニペットは、私が atm を使用しているものです (マットを使用する必要があると思います:)

 void loadImage()
{
int nImages = 6;
for (int i = 0; i < nImages; ++i)
 {
IplImage *image;
char filename[100];
strcpy(filename, "images/");

char frameNo[10];
sprintf(frameNo, "%03i", i);

strcat(filename, frameNo);
strcat(filename, ".jpg");

image = cvLoadImage(filename);
cvNamedWindow("pic");
cvShowImage("pic",image);
cvMoveWindow("pic", 0, 0);
cvWaitKey(1000);
 }
}
4

1 に答える 1

1

他のスレッドで画像をロードするか、怠けている場合はループの前に画像をロードする必要があります。次のようになります。

void loadImages() {
IplImage *images[NUM_IMAGES];

 images[0] = cvLoadImage("filename1.jpg");
 images[1] = cvLoadImage("filename1.jpg");
 images[2] = cvLoadImage("filename1.jpg");
 .
 .
 . (etc)
}

void showImages(){
    loadImages();
    for (int i = 0; i < nImages; ++i){

        cvNamedWindow("pic");
        cvShowImage("pic",images[i]);
        cvMoveWindow("pic", 0, 0);
        cvWaitKey(1000);
    }
}

もちろん、画像へのピンターの配列はグローバルとして宣言するか、関数から(より良い解決策)に*images[]渡す必要があります。loadimages()showImages()

于 2012-11-23T13:27:43.420 に答える