#include <stdio.h>
#include <cstdlib>
}
static const float h_gauss[] = {
    0.0318,  0.0375,  0.0397,  0.0375,  0.0318,
    0.0375,  0.0443,  0.0469,  0.0443,  0.0375,
    0.0397,  0.0469,  0.0495,  0.0469,  0.0397,
    0.0375,  0.0443,  0.0469,  0.0443,  0.0375,
    0.0318,  0.0375,  0.0397,  0.0375,  0.0318,
};
static const float h_sobel[] = {
    -2.0, -1.0,  0.0,
    -1.0,  0.0,  1.0,
    0.0,  1.0,  2.0
};
static void img_test_demo(bool console)
{
    
    
    array img_gray = 
loadImage(ASSETS_DIR 
"/examples/images/trees_ctm.jpg", 
false);         
 
    array img_rgb  = 
loadImage(ASSETS_DIR 
"/examples/images/sunset_emp.jpg", 
true) / 255.f; 
 
    
    array thrs_img = (img_gray<130.f).as(
f32);
 
    
    channel_split(img_rgb, rr, gg, bb);
    
    channel_split(hsv, hh, ss, vv);
    
    while (!wnd.close()) {
        wnd.grid(2, 4);
        
        wnd(0, 0).image(img_rgb, "Input Image");
        wnd(1, 0).image(rotatedImg, "Rotate");
        wnd(0, 1).image(ss, "Saturation");
        wnd(1, 1).image(bb, "Blue Channel");
        wnd(0, 2).image(smt, "Smoothing");
        wnd(1, 2).image(thrs_img, "Binary Thresholding");
        wnd(0, 3).image(inorm, "Histogram Equalization");
        wnd(1, 3).image(edge_det, "Edge Detection");
        wnd.show();
    }
}
int main(int argc, char** argv)
{
    int device = argc > 1 ? atoi(argv[1]) : 0;
    bool console = argc > 2 ? argv[2][0] == '-' : false;
    try {
        printf("** ArrayFire Image Demo **\n\n");
        img_test_demo(console);
        fprintf(stderr, 
"%s\n", e.
what());
        throw;
    }
    return 0;
}