I am looking to perform SuperResolution in OpenCV using an image stack as opposed to a video file. Due to the number of images/file size I would prefer to not have an intermediate step creating a video file from the images. I created a function that calls createFrameSource_Empty and return a pointer to the main super-res code. However, I keep getting seg faults later on. Here is my function. Any help is appreciated.
// Creates a frame source from an image stack Ptr<framesource> createFrameSource_imageStack() { VideoCapture g_cap; Mat frame; int i = 270330; // should include leading zero int d = 1; char filename[1024];
// Generate an empty frame source structure
Ptr<FrameSource> frameSource;
frameSource = createFrameSource_Empty();
// Process 20 frames
while(1)
{
// Get frame from capture
//cout << "Variable i is " << i << endl;
sprintf(filename, "/Users/terry/Documents/video_product_20frame/1_1_%07d.tif",i);
g_cap.open(filename);
g_cap >> frame;
// Check if the frame was retrieved
if(!frame.data)
{
cerr << "Could not retrieve frame.";
exit (-1);
}
frameSource->nextFrame(frame);
// quit after the 20th frame
if (d == 20)
break;
i+=4;
d++;
}
return frameSource;
}