bool CvCapture_Images::open(const char * _filename) { unsigned offset = 0; close(); filename = icvExtractPattern(_filename, &offset); if(!filename) return false; // determine the length of the sequence length = 0; char str[_MAX_PATH]; for(;;) { sprintf(str, filename, offset + length); struct stat s; if(stat(str, &s)) { if(length == 0 && offset == 0) // allow starting with 0 or 1 { offset++; continue; } } if(!cvHaveImageReader(str)) break; length++; } if(length == 0) { close(); return false; } firstframe = offset; // grab frame to enable properties retrieval bool grabRes = grabFrame(); grabbedInOpen = true; currentframe = 0; return grabRes; }
bool CvCapture_Images::open(const char* _filename) { unsigned offset = 0; close(); filename = icvExtractPattern(_filename, &offset); if (!filename) { return false; } // determine the length of the sequence length = 0; char str[_MAX_PATH]; for (;;) { sprintf(str, filename, offset + length); struct stat s; if (stat(str, &s)) { if (length == 0 && offset == 0) { // allow starting with 0 or 1 offset++; continue; } } if (!cvHaveImageReader(str)) { break; } length++; } if (length == 0) { close(); return false; } firstframe = offset; return true; }