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

相关推荐

  1. C++ opencv RGB通道提升亮度

    2023-12-21 19:50:02       54 阅读
  2. dp算法第天(暑期提升)

    2023-12-21 19:50:02       26 阅读
  3. 通过电脑查看Wi-Fi密码的方法,提供种方式

    2023-12-21 19:50:02       29 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-21 19:50:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-21 19:50:02       106 阅读
  3. 在Django里面运行非项目文件

    2023-12-21 19:50:02       87 阅读
  4. Python语言-面向对象

    2023-12-21 19:50:02       96 阅读

热门阅读

  1. 复习linux——sudo授权

    2023-12-21 19:50:02       58 阅读
  2. MyBatis-Plus 内置接口方法使用

    2023-12-21 19:50:02       61 阅读
  3. golang实现注册系统服务(Windows、Darwin)

    2023-12-21 19:50:02       57 阅读
  4. Golang实践录:读取ini配置文件

    2023-12-21 19:50:02       68 阅读
  5. Rust免杀 Shellcode加载与混淆

    2023-12-21 19:50:02       46 阅读
  6. 【踩坑】Ubuntu20.4安装Vivado

    2023-12-21 19:50:02       69 阅读
  7. EasyExcel 写Excel超过限制自动切换sheet

    2023-12-21 19:50:02       68 阅读