#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 control
int 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;
}
Brightness and contrast adjusment
最新推荐文章于 2022-12-30 13:01:55 发布