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

}

相关推荐
唐天下闻化4 分钟前
2026知识付费平台选择指南:学习者与创作者如何各取所需
人工智能
百胜软件@百胜软件4 分钟前
对话文斌:E3+PRO的“AI大脑”——『胜券商品』如何让数据智能触手可及?
大数据·人工智能
王者鳜錸26 分钟前
讯飞语音唤醒+语音识别+语音合成+文生图完整集成实战
人工智能·文生图·语音识别·xcode·语音生图
码农小白AI31 分钟前
AI报告文档审核助力排气烟度精准管控:IACheck守护绿色动力环境与合规发展新底线
大数据·人工智能
深圳市快瞳科技有限公司36 分钟前
高精度宠物鼻纹识别算法原理解析:从图像采集到特征匹配
人工智能·计算机视觉·智慧城市
DX_水位流量监测38 分钟前
德希科技在线 pH 传感器
人工智能·科技·水质监测·水质传感器·水质厂家·供水水质监测·污水监测
热点速递40 分钟前
苹果首款AI穿戴硬件“Apple Pin”曝光:配iPhone的“AI眼睛”,能否突破独立局限?
人工智能·业界资讯
Java后端的Ai之路1 小时前
Milvus 向量数据库从入门到精通:AI 时代的“记忆中枢“实战指南(建议收藏!)
数据库·人工智能·milvus·向量数据库·rag
xixixi777771 小时前
AI的“血管”:从大模型需求看6G、高速光纤与智算中心网络的技术变革
人工智能·ai·大模型·算力·通信·光纤·政策