保存Opencv图像

时间:2013-08-14 09:42:02

标签: opencv

您好我有一个在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;  
}

2 个答案:

答案 0 :(得分:3)

您只需要创建一个包含图像索引的路径名称:

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

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

答案 1 :(得分:0)

使用增量名称将图像保存到文件的示例,例如capture001.jpgcapture002.jpgcapture003.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;
}