This source file includes following definitions.
- on_trackbar
- main
#include "opencv2/imgcodecs.hpp"
#include "opencv2/highgui/highgui.hpp"
using namespace cv;
const int alpha_max = 5;
const int beta_max = 125;
int alpha;
int beta;
Mat image;
static void on_trackbar( int, void* )
{
Mat new_image = Mat::zeros( image.size(), image.type() );
for( int y = 0; y < image.rows; y++ )
for( int x = 0; x < image.cols; x++ )
for( int c = 0; c < 3; c++ )
new_image.at<Vec3b>(y,x)[c] = saturate_cast<uchar>( alpha*( image.at<Vec3b>(y,x)[c] ) + beta );
imshow("New Image", new_image);
}
int main( int, char** argv )
{
image = imread( argv[1] );
alpha = 1;
beta = 0;
namedWindow("Original Image", 1);
namedWindow("New Image", 1);
createTrackbar( "Contrast Trackbar", "New Image", &alpha, alpha_max, on_trackbar );
createTrackbar( "Brightness Trackbar", "New Image", &beta, beta_max, on_trackbar );
imshow("Original Image", image);
imshow("New Image", image);
waitKey();
return 0;
}