← index
acidcamGL/source/plugin/unknown73/unknown.cpp
Source: acidcamGL/source/plugin/unknown73/unknown.cpp
// color xor
#include"ac.h"

extern "C" void filter(cv::Mat  &frame) {
    static double alpha[3] = {0.8, 1.5, 3.0};
    for(int z = 0; z < frame.rows; z++) {
        for(int i = 0; i < frame.cols; i++) {
            cv::Vec3b &pixel = ac::pixelAt(frame, z, i);
            unsigned char value[3];
            for(int q = 0; q < 3; ++q) {
                value[q] = ac::wrap_cast(alpha[q] * pixel[q]);
                pixel[q] = pixel[q]^value[q];
            }
            
        }
    }
    static int dir[3] = {0, 1, 0};
    for(int q = 0; q < 3; ++q) {
        if(dir[q] == 1) {
            alpha[q] += 0.01;
            if(alpha[q] >= 3.0) {
                alpha[q] = 3.0;
                dir[q] = 0;
            }
        } else {
            alpha[q] -= 0.01;
            if(alpha[q] <= 1) {
                alpha[q] = 1.0;
                dir[q] = 1;
            }
        }
    }
}