博客
关于我
opencv6-调整图像亮度和对比度
阅读量:791 次
发布时间:2023-02-23

本文共 1456 字,大约阅读时间需要 4 分钟。

一、理论

在图像处理领域,亮度和对比度的调整是常见的操作。亮度通常控制在0~255之间,选择一个较大的亮度值可以增强图像的整体明亮度。对比度则通过增大图像中的红、绿、蓝(RGB)三种颜色通道的差值来实现,从而使图像更加鲜艳。

二、代码演示

下面将使用OpenCV库展示如何实现亮度和对比度的调整。

代码如下:

#include "opencv2/opencv.hpp"#include "iostream"#include "math.h"

using namespace cv;using namespace std;

int main(){Mat src = imread("E:\vs2015\opencvstudy\3.jpg", 1);if (!src.data){cout << "could not load image1!" << endl;return -1;}char input_win[] = "input image";imshow(input_win, src);cvtColor(src, src, CV_BGR2GRAY);

Mat m1;src.convertTo(m1, CV_32F);double alpha = 0.6; // 控制对比度float beta = 10;    // 控制亮度for (int row = 0; row < m1.rows; row++){    for (int col = 0; col < m1.cols; col++)    {        if (m1.channels() == 3)        {            float b = m1.at
(row, col)[0]; float g = m1.at
(row, col)[1]; float r = m1.at
(row, col)[2]; dst.at
(row, col)[0] = saturate_cast
(alpha * b + beta); dst.at
(row, col)[1] = saturate_cast
(alpha * g + beta); dst.at
(row, col)[2] = saturate_cast
(alpha * r + beta); } else if (m1.channels() == 1) { float pixel = m1.at
(row, col); dst.at
(row, col) = saturate_cast
(alpha * pixel + beta); } else { cout << "ERROR" << endl; } }}char output_title[] = "contrast and brightness change demo";imshow(output_title, dst);waitKey(0);return 0;

}

以上代码首先加载输入图像,进行灰度转换,然后通过循环遍历每个像素,分别调整亮度和对比度。通过调整alpha和beta参数,可以控制对比度和亮度。最终展示调整后的图像。

转载地址:http://hmsfk.baihongyu.com/

你可能感兴趣的文章
Objective-C实现BF算法 (附完整源码)
查看>>
Objective-C实现binary exponentiation二进制幂运算算法(附完整源码)
查看>>
Objective-C实现binomial coefficient二项式系数算法(附完整源码)
查看>>
Objective-C实现euclideanDistance欧氏距离算法(附完整源码)
查看>>
Objective-C实现euler method欧拉法算法(附完整源码)
查看>>
Objective-C实现factorial iterative阶乘迭代算法(附完整源码)
查看>>
Objective-C实现FigurateNumber垛积数算法(附完整源码)
查看>>
Objective-C实现Gale-Shapley盖尔-沙普利算法(附完整源码)
查看>>
Objective-C实现hardy ramanujana定理算法(附完整源码)
查看>>
Objective-C实现insertion sort插入排序算法(附完整源码)
查看>>
Objective-C实现Interpolation search插值查找算法(附完整源码)
查看>>
Objective-C实现k nearest neighbours k最近邻分类算法(附完整源码)
查看>>
Objective-C实现k-nearest算法(附完整源码)
查看>>
Objective-C实现knapsack背包问题算法(附完整源码)
查看>>
Objective-C实现KPCA(附完整源码)
查看>>
Objective-C实现max subarray sum最大子数组和算法(附完整源码)
查看>>
Objective-C实现MaximumSubarray最大子阵列(动态规划解决方案)算法(附完整源码)
查看>>
Objective-C实现md5算法(附完整源码)
查看>>
Objective-C实现memoization优化技术算法(附完整源码)
查看>>
Objective-C实现merge insertion sort合并插入排序算法(附完整源码)
查看>>