#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/highgui/highgui.hpp"
#include <iostream>
#include <qstring.h>
#include <qdebug.h>
#include <qthread.h>
#include <sys/time.h>
using namespace cv;
using namespace std
;
static void ContrastAndBright(int, void *);
int g_nContrastValue;
int g_nBrightValue;
Mat g_srcImage,g_dstImage;
int main( )
{
g_srcImage = imread( "D:\\QT\\project\\opencv_qtcreaor\\image\\1.jpg");
if( !g_srcImage.data ) { printf("读取g_srcImage图片错误~! \n"); return false; }
g_dstImage = Mat::zeros( g_srcImage.size(), g_srcImage.type() );
g_nContrastValue=80;
g_nBrightValue=80;
namedWindow("xiaoguo", 1);
namedWindow("【原始图窗口】", 1);
imshow("【原始图窗口】", g_srcImage);
createTrackbar("contrast", "xiaoguo",&g_nContrastValue, 300,ContrastAndBright );
createTrackbar("brightness", "xiaoguo",&g_nBrightValue, 200,ContrastAndBright );
ContrastAndBright(g_nContrastValue,0);
ContrastAndBright(g_nBrightValue,0);
qDebug()<<"运行成功"<<endl;
waitKey(0);
return 0;
}
static void ContrastAndBright(int, void *)
{
for( int y = 0; y < g_srcImage.rows; y++ )
{
for( int x = 0; x < g_srcImage.cols; x++ )
{
for( int c = 0; c < 3; c++ )
{
g_dstImage.at<Vec3b>(y,x)[c] = saturate_cast<uchar>( (g_nContrastValue*0.01)*( g_srcImage.at<Vec3b>(y,x)[c] ) + g_nBrightValue );
}
}
}
imshow("xiaoguo", g_dstImage);
}