Ejemplo n.º 1
0
void ac::ReverseSubFilterBlend(cv::Mat &frame) {
    if(subfilter == -1 || ac::draw_strings[subfilter] == "ReverseSubFilterBlend")
        return;
    cv::Mat copy1 = frame.clone(), copy2 = frame.clone();
    CallFilter(subfilter, copy1);
    Reverse(copy2);
    CallFilter(subfilter, copy2);
    AlphaBlend(copy1, copy2, frame, 0.5);
}
Ejemplo n.º 2
0
void ac::FilterStrobeSubFilter(cv::Mat &frame) {
    if(subfilter == -1 || ac::draw_strings[subfilter] == "FilterStrobeSubFilter")
        return;
    static bool flash = true;
    if(flash == true) {
        CallFilter(subfilter, frame);
        Negate(frame);
        flash = false;
    } else {
        flash = true;
        CallFilter(subfilter, frame);
    }
    AddInvert(frame);
}
Ejemplo n.º 3
0
void ac::FrameMedianBlendSubFilter(cv::Mat &frame) {
    if(subfilter == -1 || ac::draw_strings[subfilter] == "FrameMedianBlendSubFilter")
        return;
    cv::Mat frame_copy;
    cv::flip(frame, frame_copy, 1);
    CallFilter(subfilter, frame_copy);
    MedianBlend(frame_copy);
    int index = 0;
    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 = frame_copy.at<cv::Vec3b>(z, i);
            switch(index) {
                case 0:
                    break;
                case 1:
                    pixel = pix;
                    break;
            }
            ++index;
            if(index > 1)
                index = 0;
        }
    }
    MedianBlur(frame);
    RainbowXorBlend(frame);
    AddInvert(frame);
}
Ejemplo n.º 4
0
void ac::Blend_AlphaSubFilter(cv::Mat &frame) {
    
    if(subfilter == -1 || ac::draw_strings[subfilter] == "Blend_AlphaSubFilter")
        return;
    
    cv::Mat frame_copy1 = frame.clone();
    RandomBlendFilter(frame);
    CallFilter(subfilter, frame_copy1);
    int index = 0;
    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 = frame_copy1.at<cv::Vec3b>(z, i);
            switch(index) {
                case 0:
                    break;
                case 1:
                    pixel = pix;
                    break;
            }
            ++index;
            if(index > 1)
                index = 0;
        }
    }
    AddInvert(frame);
}
Ejemplo n.º 5
0
void ac::BlendAlphaSubFilter(cv::Mat &frame) {
    if(subfilter == -1 || ac::draw_strings[subfilter] == "BlendAlphaSubFilter")
        return;
    cv::Mat frame_copy = frame.clone();
    CallFilter(subfilter, frame_copy);
    static double alpha = 1.0, alpha_max = 4.0;
    int index = 0;
    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 = frame_copy.at<cv::Vec3b>(z, i);
            switch(index) {
                case 0:
                    for(int j = 0; j < 3; ++j)
                        pixel[j] = static_cast<unsigned char>(pixel[j]*(alpha+1)) ^ static_cast<unsigned char>(pix[j]*alpha);
                    break;
                case 1:
                    pixel = pix;
                    break;
            }
            ++index;
            if(index > 1)
                index = 0;
        }
    }
    static int dir = 1;
    procPos(dir, alpha, alpha_max, 4.1, 0.05);
    AddInvert(frame);
}
Ejemplo n.º 6
0
void ac::ImageBlendSubFilter(cv::Mat &frame) {
    if(subfilter == -1 || ac::draw_strings[subfilter] == "ImageBlendSubFilter")
        return;
    
    if(blend_set == true) {
        cv::Mat frame_copy1 = frame.clone();
        ExactImage(frame_copy1);
        CallFilter(subfilter, frame_copy1);
        
        int index = 0;
        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 pix1 = frame_copy1.at<cv::Vec3b>(z, i);
                switch(index) {
                    case 0:
                        break;
                    case 1:
                        pixel = pix1;
                        break;
                }
                ++index;
                if(index > 1)
                    index = 0;
            }
        }
    }
    
}
Ejemplo n.º 7
0
void ac::ExpandSquareSubFilter(cv::Mat &frame) {
    if(subfilter == -1 || ac::draw_strings[subfilter] == "ExpandSquareSubFilter")
        return;
    
    static int start_x = frame.cols/2;
    static int stop_x = frame.cols/2;
    static int speed = frame.cols/24;
    cv::Mat frame_copy = frame.clone();
    cv::Mat output;
    CallFilter(subfilter, frame_copy);
    for(int z = 0; z < frame.rows; ++z) {
        for(int i = start_x; i < stop_x; ++i) {
            cv::Vec3b &pixel = frame.at<cv::Vec3b>(z, i);
            pixel = frame_copy.at<cv::Vec3b>(z, i);
        }
    }
    static int dir = 1;
    if(dir == 1) {
        start_x -= speed;
        stop_x += speed;
        if(start_x <= 0  || stop_x > frame.cols-1) {
            dir = 0;
        }
    } else {
        start_x += speed;
        stop_x -= speed;
        if(start_x >= (frame.cols/2)-1  || stop_x <= (frame.cols/2)-1) {
            dir = 1;
        }
    }
    AddInvert(frame);
}
Ejemplo n.º 8
0
//===============================================================
UserFilterPage::UserFilterPage(QWidget *parent):QWidget(parent)
{
    QGroupBox *UserFilter=new QGroupBox(tr("User's Own Filter"));
    FilterName=new QLabel(tr("Filter Name:"));
    FilterItem=new QComboBox;
				
    StartButton=new QPushButton(tr("Start Call Other Filter"));
    QHBoxLayout *FilterLayout=new QHBoxLayout;
    FilterLayout->addWidget(FilterName);
    FilterLayout->addWidget(FilterItem);

    QVBoxLayout *UserLayout=new QVBoxLayout;
    UserLayout->addLayout(FilterLayout);
    UserLayout->addSpacing(20);
    UserLayout->addWidget(StartButton);
    UserFilter->setLayout(UserLayout);

    QVBoxLayout *mainLayout=new QVBoxLayout;
    mainLayout->addWidget(UserFilter);
    mainLayout->addStretch(1);
    setLayout(mainLayout);

    connect(StartButton,SIGNAL(clicked()),this,SLOT(CallFilter()));

}
Ejemplo n.º 9
0
void ac::BlendImageWithSubFilterAlpha(cv::Mat &frame) {
    if(blend_set == false || subfilter == -1 || ac::draw_strings[subfilter] == "BlendImageWithSubFilter")
        return;
    static double alpha = 1.0, alpha_max = 4.0;
    cv::Mat copy1 = frame.clone();
    cv::Mat reimage;
    cv::resize(blend_image, reimage, frame.size());
    CallFilter(subfilter, copy1);
    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[3];
            pix[0] = pixel;
            pix[1] = copy1.at<cv::Vec3b>(z, i);
            pix[2] = reimage.at<cv::Vec3b>(z, i);
            unsigned int values[3] = {0,0,0};
            for(int q = 0; q < 3; ++q) {
                for(int j = 0; j < 3; ++j) {
                    values[j] += pix[q][j];
                }
            }
            for(int j = 0; j < 3; ++j) {
                values[j] /= 3;
                pixel[j] = static_cast<unsigned char>(pixel[j]*(alpha+1)) ^ static_cast<unsigned char>(values[j]*alpha);
            }
        }
    }
    static int dir = 1;
    procPos(dir, alpha, alpha_max, 4.1, 0.01);
    AddInvert(frame);
}
Ejemplo n.º 10
0
void ac::Random_Filter(cv::Mat &frame) {
    std::string value = solo_filter[rand()%solo_filter.size()];
    // uncomment below to see what filter is currently being processed
    // std::cout << "Current Filter: " << value << "\n";
    CallFilter(value, frame);
    AddInvert(frame);
}
Ejemplo n.º 11
0
void ac::ImageReverseSubFilter(cv::Mat &frame) {
    if(blend_set == false || subfilter == -1 || ac::draw_strings[subfilter] == "ImageReverseSubFilter")
        return;
    
    cv::Mat reimage;
    cv::resize(blend_image, reimage, frame.size());
    cv::Mat all_frames[3];
    cv::flip(frame, all_frames[0], -1);
    cv::flip(frame, all_frames[1], 0);
    cv::flip(frame, all_frames[2], 1);
    cv::Mat copy1 = frame.clone(), copy2 = frame.clone();
    for(int z = 0; z < copy1.rows; ++z) {
        for(int i = 0; i < copy1.cols; ++i){
            cv::Vec3b &pixel = copy1.at<cv::Vec3b>(z, i);
            cv::Vec3b pix[4];
            for(int j = 0; j < 3; ++j) {
                pix[j] = all_frames[j].at<cv::Vec3b>(z, i);
            }
            for(int j = 0; j < 3; ++j) {
                pixel[j] = pix[0][j] ^ pix[1][j] ^ pix[2][j] ^ pixel[j];
            }
        }
    }
    static MatrixCollection<8> collection;
    Smooth(copy1, &collection);
    CallFilter(subfilter, reimage);
    Xor(reimage, copy1);
    AlphaBlend(reimage, copy2, frame, 0.5);
    DarkenFilter(frame);
    MedianBlend(frame);
}
Ejemplo n.º 12
0
void ac::StretchSubFilter(cv::Mat &frame) {
    if(subfilter == -1 || draw_strings[subfilter] == "StretchSubFilter")
        return;
    static int w = 2, h = 2, speed = 5, dir = 100;
    if(dir == 1) {
        w += speed;
        h += speed;
        if(w > (frame.cols-1) || (h > frame.rows-1)) {
            dir = 0;
            w = frame.cols-2;
            h = frame.rows-2;
        }
    } else {
        w -= speed;
        h -= speed;
        if(w <= 64 || h <= 64) {
            dir = 1;
            w = 64;
            h = 64;
        }
    }
    cv::Mat copy1 = frame.clone(), copy2 = frame.clone(), reimage;
    cv::resize(frame, copy1, cv::Size(w, h));
    CallFilter(subfilter, copy1);
    cv::resize(copy1, reimage, frame.size());
    AlphaBlend(copy2, reimage, frame, 0.5);
    AddInvert(frame);
}
Ejemplo n.º 13
0
void ac::BlendImageWithSubFilter(cv::Mat &frame) {
    if(blend_set == false || subfilter == -1 || ac::draw_strings[subfilter] == "BlendImageWithSubFilter")
        return;
    cv::Mat copy1 = frame.clone();
    cv::Mat reimage;
    cv::resize(blend_image, reimage, frame.size());
    CallFilter(subfilter, copy1);
    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[3];
            pix[0] = pixel;
            pix[1] = copy1.at<cv::Vec3b>(z, i);
            pix[2] = reimage.at<cv::Vec3b>(z, i);
            unsigned int values[3] = {0,0,0};
            for(int q = 0; q < 3; ++q) {
                for(int j = 0; j < 3; ++j) {
                    values[j] += pix[q][j];
                }
            }
            for(int j = 0; j < 3; ++j) {
                values[j] /= 3;
                pixel[j] = pixel[j] ^ values[j];
            }
        }
    }
    AddInvert(frame);
}
Ejemplo n.º 14
0
void ac::AndImageSubFilterXor(cv::Mat &frame) {
    if(blend_set == false || subfilter == -1 || ac::draw_strings[subfilter] == "AndImageSubFilterXor")
        return;
    cv::Mat copy1 = frame.clone(), reimage;
    cv::resize(blend_image, reimage, frame.size());
    CallFilter(subfilter, copy1);
    static double alpha = 1.0, alpha_max = 4.0;
    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[2];
            pix[0] = reimage.at<cv::Vec3b>(z, i);
            pix[1] = copy1.at<cv::Vec3b>(z, i);
            unsigned int value = 0;
            for(int j = 0; j < 3; ++j) {
                value = pix[0][j] & pix[1][j];
                pixel[j] = pixel[j] ^ value;
            }
            
        }
    }
    static int dir = 1;
    procPos(dir, alpha, alpha_max, 4.1, 0.01);
    AddInvert(frame);
}
Ejemplo n.º 15
0
void ac::OrigBlendSubFilter(cv::Mat &frame) {
    if(subfilter == -1 || draw_strings[subfilter] == "OrigBlendSubFilter" || orig_frame.empty() ||  orig_frame.size() != frame.size())
        return;
    cv::Mat copy1 = frame.clone(), copy2 = orig_frame.clone();
    CallFilter(subfilter, copy2);
    AlphaBlend(copy1, copy2, frame, 0.5);
    AddInvert(frame);
}
Ejemplo n.º 16
0
void ac::MirrorSwitchSubFilter(cv::Mat &frame) {
    if(subfilter == -1 || draw_strings[subfilter] == "MirrorSwitchSubFilter")
        return;
    cv::Mat copy1 = frame.clone(), copy2 = frame.clone();
    MirrorSwitch(copy1);
    AlphaBlend(copy1, copy2, frame, 0.5);
    CallFilter(subfilter, frame);
    AddInvert(frame);
}
Ejemplo n.º 17
0
void ac::Random_FilterSubFilter(cv::Mat &frame) {
    if(subfilter == -1 || draw_strings[subfilter] == "Random_FilterSubFilter")
        return;
    cv::Mat copy1 = frame.clone(), copy2 = frame.clone();
    Random_Filter(copy1);
    CallFilter(subfilter, copy2);
    AlphaBlend(copy1, copy2, frame, 0.5);
    AddInvert(frame);
}
Ejemplo n.º 18
0
void ac::ShuffleAlphaSubFilter(cv::Mat &frame) {
    if(subfilter == -1 || ac::draw_strings[subfilter] == "ShuffleAlphaSubFilter")
        return;
    cv::Mat copyf = frame.clone(), copyi = frame.clone();
    ShuffleAlpha(copyf);
    CallFilter(subfilter, copyi);
    AlphaBlend(copyf, copyi, frame, 0.5);
    AddInvert(frame);
}
Ejemplo n.º 19
0
void ac::ParticleReleaseSubFilter(cv::Mat &frame) {
    if(subfilter == -1 || ac::draw_strings[subfilter] == "ParticleReleaseSubFilter")
        return;
    cv::Mat copy1 = frame.clone(), copy2 = frame.clone();
    CallFilter(subfilter, copy2);
    AlphaBlend(copy1, copy2, frame, 0.5);
    MedianBlend(frame);
    ParticleRelease(frame);
    AddInvert(frame);
}
Ejemplo n.º 20
0
void ac::AlphaBlendImageSubFilterXorRev(cv::Mat &frame) {
    if(blend_set == false || subfilter == -1 || ac::draw_strings[subfilter] == "AlphaBlendImageSubFilterXorRev")
        return;
    cv::Mat reimage, copy1;
    cv::resize(blend_image, reimage, frame.size());
    CallFilter(subfilter, reimage);
    AlphaBlend(frame, reimage, copy1, 0.5);
    Xor(frame, copy1);
    AddInvert(frame);
}
Ejemplo n.º 21
0
void ac::ImageDiffSubFilter(cv::Mat &frame) {
    if(blend_set == false || subfilter == -1 || draw_strings[subfilter] == "ImageDiffSubFilter")
        return;
    cv::Mat copy1 = frame.clone(), reimage;
    cv::resize(blend_image, reimage, frame.size());
    CallFilter(subfilter, copy1);
    ImageDiff(copy1);
    AlphaBlend(copy1, reimage, frame, 0.5);
    AddInvert(frame);
    
}
Ejemplo n.º 22
0
void ac::DoubleRandomAlphaImageSubFilter(cv::Mat &frame) {
    if(blend_set == false || subfilter == -1 || draw_strings[subfilter] == "DoubleRandomAlphaImageSubFilter")
        return;
    cv::Mat copy1 = frame.clone(), reimage;
    cv::resize(blend_image, reimage, frame.size());
    Random_Filter(copy1);
    Random_Filter(reimage);
    AlphaBlendDouble(copy1, reimage, frame, 0.3, 0.3);
    CallFilter(subfilter, frame);
    AddInvert(frame);
}
Ejemplo n.º 23
0
void ac::ParticleReleaseImageSubFilter(cv::Mat &frame) {
    if(blend_set == false || subfilter == -1 || ac::draw_strings[subfilter] == "ParticleReleaseImageSubFilter")
        return;
    cv::Mat copy1 = frame.clone(), reimage;
    cv::resize(blend_image, reimage, frame.size());
    CallFilter(subfilter, reimage);
    AlphaBlend(copy1, reimage, frame, 0.5);
    ParticleRelease(frame);
    MedianBlend(frame);
    AddInvert(frame);
}
Ejemplo n.º 24
0
void ac::ColormapBlendSubFilter(cv::Mat &frame) {
    if(subfilter == -1 || ac::draw_strings[subfilter] == "ColormapBlendSubFilter")
        return;
    cv::Mat copyf = frame.clone(), copyi = frame.clone();
    setColorMap(rand()%11, copyf);
    setColorMap(rand()%11, copyi);
    RGBColorTrails(copyi);
    CallFilter(subfilter, copyf);
    AlphaBlend(copyf, copyi, frame, 0.5);
    AddInvert(frame);
}
Ejemplo n.º 25
0
void ac::RandomColorMapAlphaBlendSubFilter(cv::Mat &frame) {
    if(subfilter == -1 || ac::draw_strings[subfilter] == "RandomColorMapAlphaBlendSubFilter")
        return;
    cv::Mat copy1 = frame.clone(), copy2 = frame.clone();
    RandomColorMap(copy1);
    CallFilter(subfilter, copy1);
    static double alpha = 1.0, alpha_max = 4.0;
    AlphaBlend(copy1, copy2, frame, alpha);
    static int dir = 1;
    procPos(dir, alpha, alpha_max, 4.1, 0.005);
    AddInvert(frame);
}
Ejemplo n.º 26
0
void ac::MirrorOrderSubFilter(cv::Mat &frame) {
    if(subfilter == -1 || ac::draw_strings[subfilter] == "MirrorOrderSubFilter")
        return;
    cv::Mat copy1 = frame.clone(), copy2 = frame.clone();
    CallFilter(subfilter, copy1);
    MirrorOrder(copy2);
    AlphaBlend(copy1, copy2, frame, 0.5);
    SmoothTrailsBlend(frame);
    DarkenImage(frame, 4);
    MedianBlend(frame);
    AddInvert(frame);
}
Ejemplo n.º 27
0
void ac::ImageDistortionSubFilter(cv::Mat &frame) {
    if(blend_set == false || subfilter == -1 || ac::draw_strings[subfilter] == "ImageDistortionSubFilter")
        return;
    cv::Mat copy1 = frame.clone();
    cv::Mat copy2;
    cv::resize(blend_image,copy2,frame.size());
    CallFilter(subfilter, copy1);
    pushSubFilter(filter_map["ExactImage"]);
    SmoothImageAlphaBlend(copy2);
    popSubFilter();
    AlphaBlend(copy1, copy2, frame, 0.5);
    AddInvert(frame);
}
Ejemplo n.º 28
0
void ac::StoredFramesAlphaBlend_SubFilter(cv::Mat &frame) {
    if(subfilter == -1 || ac::draw_strings[subfilter] == "StoredFramesAlphaBlend_SubFilter")
        return;
    static MatrixCollection<8> collection;
    static double alpha = 1.0, alpha_max = 4.0;
    cv::Mat frame_copy = frame.clone();
    CallFilter(subfilter, frame_copy);
    cv::Mat fcopy = frame.clone();
    AlphaBlend(fcopy, frame_copy, frame, alpha);
    collection.shiftFrames(frame);
    Smooth(frame, &collection);
    static int dir = 1;
    procPos(dir, alpha, alpha_max, 4.1, 0.05);
    AddInvert(frame);
}
Ejemplo n.º 29
0
void ac::ImageCollectionSubFilter(cv::Mat &frame) {
    if(blend_set == false || subfilter == -1 || ac::draw_strings[subfilter] == "ImageBlendXorSubFilter")
        return;
    static double alpha = 1.0, alpha_max = 4.0;
    static int dir = 1;
    cv::Mat frame_copy1 = frame.clone();
    cv::Mat frame_copy2 = frame.clone();
    ExactImage(frame_copy1);
    AlphaBlend(frame_copy1, frame_copy2, frame, alpha);
    CallFilter(subfilter, frame);
    static MatrixCollection<8> collection;
    collection.shiftFrames(frame);
    Smooth(frame, &collection);
    procPos(dir, alpha, alpha_max, 4.1, 0.05);
    AddInvert(frame);
}
Ejemplo n.º 30
0
void ac::FrameBlurSubFilter(cv::Mat &frame) {
    if(subfilter == -1 || ac::draw_strings[subfilter] == "FrameBlurSubFilter")
        return;
    static double alpha = 1.0, alpha_max = 4.0;
    cv::Mat frame_copy1 = frame.clone();
    cv::Mat frame_copy2 = frame.clone();
    MedianBlur(frame_copy1);
    CallFilter(subfilter, frame_copy1);
    MedianBlur(frame_copy1);
    MedianBlur(frame_copy2);
    AlphaBlend(frame_copy1, frame_copy2, frame, alpha);
    MedianBlur(frame);
    static int dir = 1;
    procPos(dir, alpha, alpha_max, 4.1, 0.05);
    AddInvert(frame);
}