Brightness and contrast adjusment

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值