
        
// Auto-generated C Code - S2i Mosaicode
/*
*	In order to compile this source code run, in a terminal window, the following command:
*	gcc sourceCodeName.c `pkg-config --libs --cflags opencv` -o outputProgramName
*
*	the `pkg-config ... opencv` parameter is a inline command that returns the path to both
*	the libraries and the headers necessary when using opencv. The command also returns other necessary compiler options.
*/

#ifdef _CH_
#pragma package <opencv>
#endif

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <iostream>
#include "opencv2/core.hpp"
#include "opencv2/opencv.hpp"
#include "opencv2/imgproc.hpp"
#include "opencv2/imgcodecs.hpp"
#include "opencv2/highgui.hpp"
#include "opencv2/objdetect.hpp"
#include "opencv2/calib3d/calib3d.hpp"
#include "opencv2/features2d/features2d.hpp"

using namespace cv;
using namespace std;

#define FRAMERATE 1000.0 / 25.0


int main(int argc, char ** argv){
    char key = ' ';
            
    Mat image_file_35_output_image;
        
    Mat decompose_rgb_36_input_image;
    Mat block36_img_t0[3];
    Mat decompose_rgb_36_output_image1;
    Mat decompose_rgb_36_output_image2;
    Mat decompose_rgb_36_output_image3;
        
    Mat show_image_33_input_image;
    if(strcmp("WINDOW_NORMAL", "WINDOW_AUTOSIZE") == 0)
        namedWindow("My Image1", WINDOW_NORMAL);
    else
        namedWindow("My Image1", WINDOW_AUTOSIZE);
        
    Mat show_image_34_input_image;
    if(strcmp("WINDOW_NORMAL", "WINDOW_AUTOSIZE") == 0)
        namedWindow("My Image3", WINDOW_NORMAL);
    else
        namedWindow("My Image3", WINDOW_AUTOSIZE);
        
    Mat show_image_4_input_image;
    if(strcmp("WINDOW_NORMAL", "WINDOW_AUTOSIZE") == 0)
        namedWindow("My Image2", WINDOW_NORMAL);
    else
        namedWindow("My Image2", WINDOW_AUTOSIZE);

    while((key = (char)waitKey(FRAMERATE)) != 27){
        
    image_file_35_output_image = imread("/usr/share/mosaicode/extensions/examples/c/opencv/lenna.png", IMREAD_COLOR);
        
        if(!image_file_35_output_image.empty()) 
        	decompose_rgb_36_input_image = image_file_35_output_image.clone();
        
    if(!decompose_rgb_36_input_image.empty()){
        split(decompose_rgb_36_input_image, block36_img_t0);
        decompose_rgb_36_output_image1 = block36_img_t0[0];
        decompose_rgb_36_output_image2 = block36_img_t0[1];
        decompose_rgb_36_output_image3 = block36_img_t0[2];
    }
        
        if(!decompose_rgb_36_output_image1.empty()) 
        	show_image_33_input_image = decompose_rgb_36_output_image1.clone();
        
        if(!decompose_rgb_36_output_image2.empty()) 
        	show_image_4_input_image = decompose_rgb_36_output_image2.clone();
        
        if(!decompose_rgb_36_output_image3.empty()) 
        	show_image_34_input_image = decompose_rgb_36_output_image3.clone();

    if(!show_image_33_input_image.empty()){
        imshow("My Image1", show_image_33_input_image);
    }

    if(!show_image_34_input_image.empty()){
        imshow("My Image3", show_image_34_input_image);
    }

    if(!show_image_4_input_image.empty()){
        imshow("My Image2", show_image_4_input_image);
    }

                
    image_file_35_output_image.release();
        
    block36_img_t0[0].release();
    block36_img_t0[1].release();
    block36_img_t0[2].release();
    decompose_rgb_36_output_image1.release();
    decompose_rgb_36_output_image2.release();
    decompose_rgb_36_output_image3.release();
    decompose_rgb_36_input_image.release();
        
    show_image_33_input_image.release();
        
    show_image_34_input_image.release();
        
    show_image_4_input_image.release();

    }

    destroyAllWindows();
    return 0;
}
