#include <iostream>
int _brightness = 100;
int _contrast = 100;
static void updateBrightnessContrast( int , void* )
{
    int histSize = 64;
    int brightness = _brightness - 100;
    int contrast = _contrast - 100;
    
    double a, b;
    if( contrast > 0 )
    {
        double delta = 127.*contrast/100;
        a = 255./(255. - delta*2);
        b = a*(brightness - delta);
    }
    else
    {
        double delta = -128.*contrast/100;
        a = (256.-delta*2)/255.;
        b = a*brightness + delta;
    }
    for( int i = 0; i < histSize; i++ )
    imshow(
"histogram", histImage);
 }
const char* keys =
{
    "{help h||}{@image|baboon.jpg|input image file}"
};
int main( int argc, const char** argv )
{
    parser.
about(
"\nThis program demonstrates the use of calcHist() -- histogram creation.\n");
    {
        return 0;
    }
    string inputImage = parser.
get<
string>(0);
     
    if(image.empty())
    {
        std::cerr << "Cannot read image file: " << inputImage << std::endl;
        return -1;
    }
    createTrackbar(
"brightness", 
"image", &_brightness, 200, updateBrightnessContrast);
     createTrackbar(
"contrast", 
"image", &_contrast, 200, updateBrightnessContrast);
     updateBrightnessContrast(0, 0);
    return 0;
}