首页 > 代码库 > OpenCV Tutorials —— Changing the contrast and brightness of an image
OpenCV Tutorials —— Changing the contrast and brightness of an image
Brightness and contrast adjustments
Two commonly used point processes are multiplication and addition with a constant:
The parameters and are often called the gain and bias parameters; sometimes these parameters are said to control contrast and brightness respectively.
You can think of as the source image pixels and as the output image pixels. Then, more conveniently we can write the expression as:
where and indicates that the pixel is located in the i-th row and j-th column.
亮度增强
#include "stdafx.h"#include <cv.h>#include <highgui.h>#include <iostream>using namespace cv;double alpha; /**< Simple contrast control */int beta; /**< Simple brightness control */int main( int argc, char** argv ){ /// Read image given by user Mat image = imread( "xue.jpg" ); Mat new_image = Mat::zeros( image.size(), image.type() ); /// Initialize values std::cout<<" Basic Linear Transforms "<<std::endl; std::cout<<"-------------------------"<<std::endl; std::cout<<"* Enter the alpha value [1.0-3.0]: ";std::cin>>alpha; std::cout<<"* Enter the beta value [0-100]: "; std::cin>>beta; /// Do the operation new_image(i,j) = alpha*image(i,j) + beta for( int y = 0; y < image.rows; y++ ) { for( int x = 0; x < image.cols; x++ ) { for( int c = 0; c < 3; c++ ) { new_image.at<Vec3b>(y,x)[c] = saturate_cast<uchar>( alpha*( image.at<Vec3b>(y,x)[c] ) + beta ); } } } /// Create Windows namedWindow("Original Image", 1); namedWindow("New Image", 1); /// Show stuff imshow("Original Image", image); imshow("New Image", new_image); /// Wait until user press some key waitKey(); return 0;}
new_image.at<Vec3b>(y,x)[c] =saturate_cast<uchar>( alpha*( image.at<Vec3b>(y,x)[c] ) + beta );
注意 : y,x
注意: image.at<Vec3b>(y,x)[c]
To access each pixel in the images we are using this syntax: image.at<Vec3b>(y,x)[c] where y is the row, x is the column and c is R, G or B (0, 1 or 2).
最后,这样的方法OpenCV有现成的
image.convertTo(new_image, -1, alpha, beta);
OpenCV Tutorials —— Changing the contrast and brightness of an image
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。