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

}

相关推荐
shuaicoding1 小时前
OpenClaw 完全指南:让你的 AI 助手真正『长』在浏览器里
人工智能
刀法如飞1 小时前
AI时代,程序员都应该是算法思想工程师
人工智能·设计模式·程序员
理想小青年1 小时前
OpenClaw网络搜索Tavily Search Skill 安装教程
人工智能
yangpow22 小时前
深度解析 OpenClaw:一个自托管 AI Agent 网关的架构设计与安全机制
人工智能
agentium2 小时前
1小时LangChain教程
人工智能
工边页字2 小时前
面试官:请详细介绍下AI中的token,越详细越好!
前端·人工智能·后端
Miku162 小时前
OpenClaw-Linux+飞书官方Plugin安装指南
linux·人工智能·agent
Miku162 小时前
OpenClaw 接入 QQ Bot 完整实践指南
linux·人工智能·agent
熊崽3 小时前
Claude Code CLI+英伟达免费api 教程
人工智能
AI攻城狮3 小时前
OpenFang 给我的一个提醒:AI Agent 真正难的不是自主,而是治理
人工智能·云原生·aigc