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;}