您好我有一个在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;
}
答案 0 :(得分:3)
您只需要创建一个包含图像索引的路径名称:
char path[512];
snprintf(path, 512, "/Documents/testframe%03d.jpg", counterimg);
cvSaveImage(path, frame);
“%03d”将被“000”,“001”,“002”等替换。
答案 1 :(得分: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;
}