Image processing examples.
#include <iostream>
using namespace std;
int main()
{
    
    if (!
ImRead(
"../examples/data/test.jpg", img1)) {
         return EXIT_FAILURE;
    }
    
    int new_width = 225;
    int new_height = 300;
    cout << "Executing ResizeDim" << endl;
    
    vector<double> res_scale = { 2,2 };
    cout << "Executing ResizeScale" << endl;
    ImWrite(
"img_resized_scale.jpg", tmp);
     
    cout << "Executing Flip2D" << endl;
    
    cout << "Executing Mirror2D" << endl;
    
    cout << "Executing Transpose" << endl;
    
    int angle = 60;
    cout << "Executing Rotate2D" << endl;
    
    double rot_scale = 1.5;
    cout << "Executing RotateFullImage2D" << endl;
    ImWrite(
"img_rotated_full.jpg", tmp);
     
    cout << "Executing ChangeColorSpace" << endl;
    
    cout << "Executing OtsuThreshold" << endl;
    
    double maxval = 255;
    cout << "Executing Threshold" << endl;
    
    
    vector<vector<ecvl::Point2i>> contours;
    
    auto i = kernel.
Begin<
double>(), e = kernel.End<
double>();
     float c = 0.11f;
    for (; i != e; ++i) {
        *i = c;
    }
    
    cout << "Executing Filter2D" << endl;
    
    vector<double> kernelX = { 1, 2, 1 };
    vector<double> kernelY = { 1, 0, -1 };
    cout << "Executing SeparableFilter2D" << endl;
    ImWrite(
"img_separable_filter.jpg", tmp);
     
    cout << "Executing GaussianBlur" << endl;
    ImWrite(
"img_gaussian_blur.jpg", tmp);
     
    float stddev = 255 * 0.05;
    cout << "Executing AdditiveLaplaceNoise" << endl;
    ImWrite(
"img_laplacenoise.jpg", tmp);
     
    int gamma = 3;
    cout << "Executing GammaContrast" << endl;
    ImWrite(
"img_gammacontrast.jpg", tmp);
     
    float prob = 0.5;
    float drop_size = 0.1f;
    bool per_channel = true;
    cout << "Executing CoarseDropout" << endl;
    ImWrite(
"img_coarsedropout.jpg", tmp);
     
    vector<Image> images;
    if (!
ImRead(
"../examples/data/img0003.png", img1)) {
         return EXIT_FAILURE;
    }
    if (!
ImRead(
"../examples/data/img0015.png", img2)) {
         return EXIT_FAILURE;
    }
    images.push_back(img1);
    images.push_back(img2);
    images.push_back(img1);
    images.push_back(img2);
    ResizeDim(images[1], images[1], { images[1].dims_[0] / 2, images[1].dims_[1] });
     cout << "Executing HConcat" << endl;
    images.erase(images.begin() + 1);
    
    ResizeDim(images[1], images[1], { images[1].dims_[0] , images[1].dims_[1] / 2 });
     cout << "Executing VConcat" << endl;
    images.erase(images.begin() + 1);
    
    cout << "Executing Stack of images xyc creating a xyo Image" << endl;
    cout << "Executing Salt" << endl;
    Salt(img1, tmp, 0.5, 
true);
     ImWrite(
"img_salt_perchannel.png", tmp);
     Salt(img1, tmp, 0.5, 
false);
     cout << "Executing Pepper" << endl;
    ImWrite(
"img_pepper_perchannel.png", tmp);
     Pepper(img1, tmp, 0.5, 
false);
     cout << "Executing SaltAndPepper" << endl;
    ImWrite(
"img_saltandpepper_perchannel.png", tmp);
     ImWrite(
"img_saltandpepper.png", tmp);
     cout << "Executing OpticalDistortion" << endl;
    ImWrite(
"img_opticaldistortion.png", tmp);
     cout << "Executing GridDistortion" << endl;
    ImWrite(
"img_griddistortion.png", tmp);
     cout << "Executing ElasticTransform" << endl;
    ImWrite(
"img_elastictransform.png", tmp);
     cout << "Executing CenterCrop" << endl;
    ImWrite(
"img_centercrop.png", tmp);
     return EXIT_SUCCESS;
}