c++ code

------------

#include <iostream>

#include <opencv2/highgui/highgui.hpp>

#include <opencv2/imgproc/imgproc.hpp>

using namespace std;

using namespace cv;

const int slider_max = 1;

int slider;

Mat img;

void on_trackbar(int pos, void *)

{

        Mat img_result;

        if(pos > 0) cvtColor(img, img_result, CV_BGR2GRAY);

        else img_result = img;

        imshow("Image", img_result);

}

int main()

{

        img = imread("lena.jpg");

        namedWindow("Image");

        imshow("Image", img);

        slider = 0;

        createTrackbar("BGR<->ColorSpace", "Image", &slider, slider_max, on_trackbar);

        while(char(waitKey(1)) != 'q') {}

        waitKey(0);

        return 0;

}

python code

----------------

import cv2.cv as cv

import sys

import urllib2

class DemHist:

    def __init__(self, src_image):

        self.src_image = src_image

        self.dst_image = cv.CloneMat(src_image)

        self.brightness = 0

        self.contrast = 0

        cv.NamedWindow("image", 0)

        cv.CreateTrackbar("brightness", "image", 100, 200, self.update_brightness)

        cv.CreateTrackbar("contrast", "image", 100, 200, self.update_contrast)

        self.update_brightcont()

    def update_brightness(self, val):

        self.brightness = val - 100

        self.update_brightcont()

    def update_contrast(self, val):

        self.contrast = val - 100

        self.update_brightcont()

    def update_brightcont(self):

        if self.contrast > 0:

            delta = 127. * self.contrast / 100

            a = 255. / (255. - delta * 2)

            b = a * (self.brightness - delta)

        else:

            delta = -128. * self.contrast / 100

            a = (256. - delta * 2) / 255.

            b = a * self.brightness + delta

        cv.ConvertScale(self.src_image, self.dst_image, a, b)

        cv.ShowImage("image", self.dst_image)

if __name__ == "__main__":

    if len(sys.argv) > 1:

        src_image = cv.GetMat(cv.LoadImage(sys.argv[1], 0))

    else:

        url = 'http://code.opencv.org/projects/opencv/repository/revisions/master/raw/samples/c/ba$

        filedata = urllib2.urlopen(url).read()

        imagefiledata = cv.CreateMatHeader(1, len(filedata), cv.CV_8UC1)

        cv.SetData(imagefiledata, filedata, len(filedata))

        src_image = cv.imread('lena.jpg')

    dh = DemHist(src_image)

    cv.WaitKey(0)

    cv.DestroyAllWindows()