如何使用C++在OpenCV中更改图像亮度?


更改亮度意味着更改像素值。这意味着为每个像素的当前值添加或减去某个整数值。当您为每个像素添加某个整数值时,意味着您正在使图像更亮。当您从所有像素中减去某个常数值时,您正在降低亮度。首先,我们将学习如何增加亮度,其次我们将学习如何降低亮度。

增加亮度

使用OpenCV增加亮度非常容易。要增加亮度,请为每个通道添加一些附加值,亮度就会增加。例如,BRG图像具有三个通道:蓝色 (B)、绿色 (G) 和红色 (R)。这意味着像素的当前值将为 (B, G, R)。要增加亮度,我们必须用某个标量数将其相加,例如 (B, G, R) + (10, 10, 10) 或 (B, G, R) + (20, 20, 20),或者您想要的任何数字。

以下示例执行图像增亮 -

示例

#include<iostream>
#include<opencv2/highgui/highgui.hpp>
using namespace cv;
using namespace std;
int main() {
   Mat original;//Declaring a matrix to load the original image//
   Mat brighter;//Declaring a matrix to load the image after changing the brightness//
   namedWindow("Original");//Declaring window to show the original image//
   namedWindow("Brighter");//Declaring window to show the brighter image//
   original = imread("bright.jpg");
   brighter = original + Scalar(80, 80, 80);//adding integer value to change the brightness//
   imshow("Original", original);//showing original image//
   imshow("Brighter", brighter);//showing brighter image//
   waitKey(0);//wait for keystroke//
   return(0);
}

输出

更新于:2021年3月10日

2K+ 次浏览

启动您的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.