上图:
Mat process(Mat &img);
int main()
{
VideoCapture cap("video/Megamind.avi");
if (!cap.isOpened())
{
cout << "could not open" << endl;
return -1;
}
Mat frame;
cap >> frame;
Size S = Size((int) cap.get(CV_CAP_PROP_FRAME_WIDTH),
(int) cap.get(CV_CAP_PROP_FRAME_HEIGHT));
VideoWriter w;
w.open("test.avi", CV_FOURCC('X', 'V', 'I', 'D'), cap.get(CV_CAP_PROP_FPS), S + Size(10,10) );
Mat dst;
do
{
cap >> frame;
dst = process(frame);
w << dst;
}while (frame.data);
cout << "done" << endl;
return 0;
}
Mat process(Mat &img)
{
Mat src;
pyrDown(img, src);
Mat bgr_res[3];
Mat bgr[3];
for( int j = 0 ; j < 3; j++)
{
split(src, bgr);
for (int i=0; i<3; ++i)
{
if (i != j )
bgr[i] = Mat::zeros(src.size(), bgr[0].type());
}
merge(