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

}

相关推荐
数字化转型2025几秒前
数字永生要来了吗?
人工智能
AIBox3653 分钟前
claude 镜像 api 使用指南(2026 年4 月更新)
java·服务器·前端·人工智能·gpt·前端框架
月诸清酒6 分钟前
告别繁琐切换:Claude Code 切换模型和 provider 的利器——cc-switcher
人工智能
hmbbcsm6 分钟前
第一次尝试微调
人工智能·深度学习·机器学习
Percent_bigdata7 分钟前
百分点科技AI-DG智能数据治理平台限时试用正式开启
人工智能
2501_948114247 分钟前
2026模型选型困局:如何在单一入口下高效调度Gemini、Claude与GPT?
人工智能·gpt·ai·谷歌
杨浦老苏13 分钟前
开源自主AI智能体助手Frona
人工智能·docker·ai·群晖
数字护盾(和中)13 分钟前
智能防御时代来临!AI + 网络安全破解攻防不对称难题
人工智能·安全·web安全
小天互连即时通讯15 分钟前
政企信创即时通讯选型参考
大数据·网络·人工智能
ฅ ฅBonnie16 分钟前
vLLM 推理后端简介
人工智能·python·算法