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);

}

相关推荐
PieroPc几秒前
一个为 AI 助手设计的进销存管理系统,内置完整的 CLI 命令接口,让 AI 可以通过自然语言或命令行直接操作库存。技术栈 FastAPI+Html
人工智能·html·fastapi·cli
枫叶林FYL几秒前
第三篇:认知架构与推理系统 第8章 世界模型学习
人工智能·机器学习
一休哥助手几秒前
2026年4月5日人工智能早间新闻
人工智能
七夜zippoe3 分钟前
OpenClaw 消息工具详解:多渠道消息发送实战指南
人工智能·microsoft·多渠道·互动·openclaw
佳木逢钺3 分钟前
[开源]玄武门之变的多变量数学建模与C++模拟系统——从历史事件到量化分析
c++·opencv·数学建模
Miki Makimura5 分钟前
C++ 聊天室项目:Linux 环境搭建与问题总结
linux·开发语言·c++
SuniaWang6 分钟前
2026 AI Agent 爆发元年:OpenClaw v2026.4.2(The Lobster)Windows 深度部署与全路径避坑指南
人工智能·windows·openclaw·小龙虾
追光的蜗牛丿7 分钟前
OpenCV Mat 中的图像数据是如何存储的
人工智能·opencv·计算机视觉
jinanwuhuaguo8 分钟前
OpenClaw办公人员核心技能深度培训体系:从认知重塑到数字组织构建的全链路实战指南
java·大数据·开发语言·人工智能·openclaw
ai生成式引擎优化技术8 分钟前
AI世界的多元化结构理论猜想
人工智能