Since you know that you are looking for repeating long horizontalish lines, you could use some kind of texture analysis such as a Gabor Filter to isolate those lines, and then use a line detection algorithm such as the Hough Transform. OpenCV has functions to do all of that.
Given the boring nature of my evening I decided to test those ideas a little bit. After tweaking some of the gabor filter parameters I was able to isolate horizontal-ish lines in the image as such:

Code:
//Tweaked parameters
cv::Size ks(101,101);
int sig = 20;
int lm = 50;
int th = 0;
cv::Mat kernel = cv::getGaborKernel(ks,sig,th,lm,0,0,CV_32F);
//using kernel transpose because theta = 90 (or pi/2)
//did not give horizontal lines.
cv::filter2D(im, im, CV_32F, kernel.t());
//Threshold to get binary image for Hough
cv::threshold( im, im, 254, 255, cv::THRESH_BINARY_INV);
From there I just ran the usual HoughLinesP algorithm (filtering for very long lines) to get this:

Code:
im.convertTo(im,CV_8U);
std::vector<cv::Vec4i> lines;
cv::HoughLinesP(im,lines,1,CV_PI/180, 200, 800, 0);
From there all you would have to do is identify each line and crop out the correct image areas.
If all of your images look pretty much identical to your sample, this approach might work for you. It also might not be robust enough. Hopefully it gives you something more to think about.