Brightness and contrast adjusment

来源:互联网 发布:电吉他音响效果器软件 编辑:程序博客网 时间:2024/04/29 19:30
#include <opencv2/core/core.hpp>#include <opencv2/imgproc/imgproc.hpp>#include <opencv2/highgui/highgui.hpp>#include <iostream>#include <sstream>using namespace std;using namespace cv; double alpha;  // contrast control int    beta;   // brightness controlint main(int argc, char* argv[]) {   Mat input = imread("baboon.jpg", CV_LOAD_IMAGE_COLOR);   Mat output1 = Mat::zeros(input.size(), input.type());   Mat output2 = Mat::zeros(input.size(), input.type());   imshow("input image", input);   cout << "Basic Linear Transforms " << endl;   cout << "------------------------" << endl;   cout << "Enter the alpha value [1.0 - 3.0]:";   cin  >> alpha;   cout << "Enter the beta value [0 - 100]";   cin  >> beta;   // Hand written function  --------------------------------------------------------------   int nRows = input.rows;   int ncols = input.cols;   int nchannels = input.channels();   for (int i = 0; i < nRows; ++i) {   for (int j = 0; j < ncols; ++j) {   for (int k = 0; k < nchannels; ++k) {      output1.at<Vec3b>(i, j)[k] = saturate_cast<uchar>(alpha * input.at<Vec3b>(i, j)[k] + beta);   }   }   }   imshow("hand writen function", output1);   // Bild-in function convertTo : new_image = a*image + beta--------------------------------   input.convertTo(output2, input.type(), alpha, beta);   imshow("Bild-in function", output2);  waitKey(0);return 0;}