1

嗨,我有一个在 OpenCV(C API)中运行的窗口,我想从窗口中保存一系列图像,而不保存前一个图像。所以一段时间后,窗口应该保存刷新,然后保存并刷新等,我的电脑上应该有多个图像。我还没有完全到达那里,但我正在尝试做类似的事情:

if (counter>=300)  {
int counterimg=1;
//reset background to black
cvSet(imgScribble,cvScalar(0,0,0);
//save image to file 
cvSaveImage("/Documents/testframe.jpg" [counterimg], frame); 
counter=0;
//increase counter for saving
counterimg+=1;  
}
4

2 回答 2

3

您只需要使用图像的索引创建一个路径名:

char path[512];
snprintf(path, 512, "/Documents/testframe%03d.jpg", counterimg);
cvSaveImage(path, frame);

“%03d”将被“000”、“001”、“002”等替换。

于 2013-08-14T09:45:58.203 回答
0

将图像保存到具有增量名称的文件的示例,例如capture001.jpg, capture002.jpg,capture003.jpg等。

char path[255];
char num[10];
char jpg[10] = ".jpg";
int counter = 0;

while (1) {
    // To save 20 images
    if (counter < 20) {
        strcpy(path, "c:\\capture");
        sprintf(num, "%03i", counter);
        strcat(path, num);   
        strcat(path, jpg);
        printf("Saving: %s\n", path);
        cvSaveImage(path, frame);
        counter++;
    }
    // Press ESC to break loop
    char ch = waitKey(25);              
    if (ch == 27) break;
}
于 2013-08-14T14:20:08.407 回答