#include"ac.h" extern "C" void filter(cv::Mat &frame) { static double num = 1.0; static int dir = 1; ac::MatrixCollection<8> collection; collection.shiftFrames(frame); for(int z = 0; z < frame.rows; ++z) { for(int i = 0; i < frame.cols; ++i) { cv::Vec3b &pixel = frame.at<cv::Vec3b>(z, i); cv::Vec3b &pix = collection.frames[6].at<cv::Vec3b>(z, i); for(int q = 0; q < 3; ++q) pixel[q] ^= ac::wrap_cast((num * pixel[q]) + (pix[q] + (0.3 * num))); } if(dir == 1) { num += 0.0001; if(num > 5) dir = 0; } else { num -= 0.0001; if(num <= 1) dir = 1; } } }