C++ opencv RGB三通道提升亮度

#include <iostream>

#include <iomanip>

#include<opencv2//opencv.hpp>

using namespace std;

using namespace cv;

//函数adjustBrightness用于图片增加亮度

void adjustBrightness(cv::Mat& image, int targetBrightness) {

// 获取图像的通道数

int channels = image.channels();

// 计算调整亮度的因子

float factor = 1.0f;

if (targetBrightness > 0) {

factor = static_cast<float>(targetBrightness) / 255.0f;

}

else if (targetBrightness < 0) {

factor = 255.0f / static_cast<float>(255 - std::abs(targetBrightness));

}

// 遍历图像的每个像素

for (int i = 0; i < image.rows; ++i) {

for (int j = 0; j < image.cols; ++j) {

// 获取像素值

cv::Vec3b& pixel = image.at<cv::Vec3b>(i, j);

// 调整亮度

for (int c = 0; c < channels; ++c) {

if (targetBrightness > 0) {

pixel[c] = cv::saturate_cast<uchar>(pixel[c] * factor);

}

else if (targetBrightness < 0) {

pixel[c] = cv::saturate_cast<uchar>((pixel[c] - 255) * factor + 255);

}

}

}

}

}

void saveimage(std::string file, std::string savefile, int targetBrightness = 400) {

cv::Mat img = imread(file);

adjustBrightness(img, targetBrightness);

imwrite(savefile, img);

}

int main() {

saveimage("C:/Users/lenovo/Desktop/aa/T026_26.jpg",

"C:/Users/lenovo/Desktop/aa/aa.jpg", 800);

}

相关推荐
德育处主任3 分钟前
地表最强“慧眼”,给大模型戴上智能眼镜 PaddleOCR-VL
人工智能·机器学习·图像识别
aramae6 分钟前
详细分析平衡树--红黑树(万字长文/图文详解)
开发语言·数据结构·c++·笔记·算法
AI浩7 分钟前
基于信息保留与细粒度特征聚合的无人机目标检测
人工智能·目标检测·无人机
dxnb228 分钟前
Datawhale25年10月组队学习:math for AI+Task2线性代数
人工智能·学习·线性代数
一百天成为python专家9 分钟前
python爬虫入门(小白五分钟从入门到精通)
开发语言·爬虫·python·opencv·yolo·计算机视觉·正则表达式
再卷也是菜9 分钟前
C++篇(13)计算器实现
c++·算法
数字化顾问26 分钟前
AI+大数据时代:从架构重构看时序数据库的价值释放——关键概念、核心技巧与代码实践
人工智能
用户51914958484535 分钟前
星际争霸1 EUD漏洞利用技术解析
人工智能·aigc
万俟淋曦1 小时前
【论文速递】2025年第29周(Jul-13-19)(Robotics/Embodied AI/LLM)
人工智能·ai·机器人·论文·robotics·具身智能
ghostwritten1 小时前
深入理解嵌入模型(Embedding Model):AI 语义世界的基石
人工智能·embedding