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

}

相关推荐
山居秋暝LS几秒前
安装C++版opencv和opencv_contrib
开发语言·c++·opencv
lizhihai_995 分钟前
股市学习心得—半导体12种核心材料
大数据·人工智能·学习
STLearner5 分钟前
SIGIR 2026 | LLM × Graph论文总结(图增强LLM,GraphRAG,Agent,多模态,知识图谱,搜索,推
人工智能·python·深度学习·神经网络·机器学习·数据挖掘·知识图谱
研究点啥好呢8 分钟前
快手产品经理面试题精选:10道高频考题+答案解析
人工智能·面试·产品经理
流年似水~16 分钟前
脚本策划:拍之前先想清楚要剪什么
人工智能·程序人生·语言模型·ai编程
郑寿昌20 分钟前
思维链三步法:让AI像人类一样推理
人工智能
圣殿骑士-Khtangc23 分钟前
AI Agent架构演进与三层安全防御体系深度解析
人工智能
ZGi.ai25 分钟前
智能客服系统设计:从工单分类到自动派单的工程实现
大数据·人工智能·分类
老陈说编程25 分钟前
12. LangChain 6大核心调用方法:invoke/stream/batch同步异步全解析,新手也能轻松学会
开发语言·人工智能·python·深度学习·机器学习·ai·langchain
给自己做减法31 分钟前
rag混合检索
人工智能·python·rag