目录

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

}

本文是转载文章,点击查看原文
如有侵权,请联系 xyy@jishuzhan.net 删除
相关推荐
阿明观察2 分钟前
聚焦AI与大模型创新,紫光云如何引领云计算行业快速演进?
人工智能·云计算
罗西的思考7 分钟前
探秘Transformer系列之(26)--- KV Cache优化 之 PD分离or合并
人工智能
JuicyActiveGilbert20 分钟前
【C++游戏引擎开发】第9篇:数学计算库GLM(线性代数)、CGAL(几何计算)的安装与使用指南
c++·线性代数·游戏引擎
小马过河R27 分钟前
通俗理解CLIP模型如何实现图搜图乃至文搜图
人工智能·深度学习·机器学习·语言模型·nlp
KarudoLee29 分钟前
AIGC6——AI的哲学困境:主体性、认知边界与“天人智一“的再思考
人工智能
DevangLic43 分钟前
下【STL 之速通pair vector list stack queue set map 】
开发语言·c++·list
xcLeigh44 分钟前
计算机视觉卷积神经网络(CNN)基础:从LeNet到ResNet
人工智能·计算机视觉·ai·cnn·卷积神经网络
azoo1 小时前
jupyter notebook 无法启动- markupsafe导致
ide·人工智能·jupyter
Julian.zhou1 小时前
A2A与MCP Server:AI智能体协作与工具交互的核心协议对比
人工智能·架构·交互
CareyWYR1 小时前
每周AI论文速递(250407-250411)
人工智能