1.理论基础

两个参数  和  一般称作 增益 和 偏置 参数。我们往往用这两个参数来分别控制 对比度 和 亮度 。

你可以把  看成源图像像素,把  看成输出图像像素。这样一来,上面的式子就能写得更清楚些:

其中,  和  表示像素位于 第i行 和 第j列 。

其中,α可以调整图像的对比度,β可以调整图像的亮度。

2.代码如下:

 #include<iostream>
#include<opencv2/opencv.hpp> using namespace std;
using namespace cv; int main(int argc, char **argv)
{
Mat src = imread("D:/meinv.jpg");
if (!src.data)
{
printf("Couldn't load the image......");
return -;
}
namedWindow("源图像", CV_WINDOW_AUTOSIZE);
imshow("源图像", src); int height = src.rows;
int width = src.cols;
int channels = src.channels(); Mat dst = Mat::zeros(src.size(),src.type()); //创建一个和原图像大小相同,类型相同,像素值为0的图像。
float alpha = 1.5; //设置参数
float beta = ; //对每个像素点的操作
for (int i = ; i < height; i++)
{
for (int j = ; j < width; j++)
{
if (channels == ) //如果是彩色图像
{
dst.at<Vec3b>(i, j)[] = saturate_cast<uchar>(alpha*(src.at<Vec3b>(i, j)[]) + beta);
dst.at<Vec3b>(i, j)[] = saturate_cast<uchar>(alpha*(src.at<Vec3b>(i, j)[]) + beta);
dst.at<Vec3b>(i, j)[] = saturate_cast<uchar>(alpha*(src.at<Vec3b>(i, j)[]) + beta);
}
else if (channels == ) //灰度图像
{
dst.at<uchar>(i,j) = saturate_cast<uchar>(alpha*(src.at<uchar>(i, j)) + beta); }
}
}
imshow("dst_image", dst);
waitKey();
return ; }

3.显示效果:

(1)原图:

(2)修改后的图像:

还可以改变β的值 观察显示效果

调整图像的亮度和对比度—opencv的更多相关文章

  1. Opencv学习笔记4:Opencv处理调整图片亮度和对比度

    一.理论基础 在数学中我们学过线性理论,在图像亮度和对比度调节中同样适用,看下面这个公式: 在图像像素中其中: 参数f(x)表示源图像像素. 参数g(x) 表示输出图像像素. 参数a(需要满足a> ...

  2. Python-OpenCV——亮度和对比度

    亮度与对比度 亮度调整是将图像像素的强度整体变大/变小,对比度调整指的是图像暗处变得更暗,亮出变得更亮,从而拓宽某个区域内的显示精度. OpenCV中亮度和对比度应用这个公式来计算:g(x) = αf ...

  3. C#中如何调整图像大小

    在本篇文章中,我将介绍如何在C#中来调整你想要的图像大小.要实现这一目标,我们可以采取以下几个步骤: 1.首先要获取你想要调整大小的图像: string path = Server.MapPath(& ...

  4. [译]Android调整图像大小的一些方法

    翻译自 某大神在Stack Overflow里的自问自答 (一般我们将Bitmap翻译为位图,但为了更好理解,在本文中我将它翻译成图像): 我们在开发的时候,经常需要从服务器中加载图像到客户端中,但有 ...

  5. glsl计算sprite的亮度饱和度对比度

    //glsl计算sprite的亮度饱和度对比度 #ifdef GL_ES precision mediump float; #endif uniform sampler2D u_texture; va ...

  6. (opencv08)cv.resize()调整图像大小

    (opencv08)cv.resize()调整图像大小 img = cv2.resize(src, dsize, dst=None, fx=None, fy=None, interpolation=N ...

  7. 如何在 HTML 中调整图像大小?

    了解在 HTML 中调整图像大小的不同技术.何时应避免在浏览器端调整大小,以及在 Web 上操作和提供图像的正确方法. 如果您的图像不适合布局,您可以在 HTML 中调整其大小.在 HTML 中调整图 ...

  8. [ActionScript 3.0] 亮度、对比度、饱和度、色相的调整

    import fl.motion.ColorMatrix; import flash.filters.ColorMatrixFilter; //**调整亮度**// var ld_Matrix:Col ...

  9. opencv:通过滑动条调节亮度和对比度

    示例代码: #include <opencv.hpp> using namespace cv; using namespace std; void on_change(int, void* ...

随机推荐

  1. iOS实现头像选取(照相或者图片库)、大小等比缩放、生成圆形头像

    //弹出actionsheet.选择获取头像的方式 //从相册获取图片 -(void)takePictureClick:(UIButton *)sender { // /*注:使用,需要实现以下协议: ...

  2. 画布canvas签名

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...

  3. Ubuntu、Windows 、Linux集合

    一.Ubuntu/Windows双系统修复引导   首先说明:在Windows存在的前提下安装Ubuntu(或者Ubuntu系列)是不需要修复引导的.因为grub会自动搜索存在硬盘中的系统.   而在 ...

  4. html:<link> 标签中的 media 属性

    HTML <link> 标签的 media 属性 定义和用法 media 属性规定被链接文档将显示在什么设备上. media 属性用于为不同的媒介类型规定不同的样式. media属性值 ( ...

  5. JavaScript 事件兼容性写法

    1.以下是JavaScript事件兼容性写法,使用者可以随意使用,兼容所有浏览器.包括IE6(亲测) <!DOCTYPE html> <html> <head> & ...

  6. OpenGL学习 Our First OpenGL Program

    This shows you how to create the main window with the book’s application framework and how to render ...

  7. Django Field lookups (字段查找)

    字段查找是指定SQL WHERE子句的核心内容的方式. 它们被指定为QuerySet方法filter().exclude()和get()的关键字参数. 1.exact:精确查找.如果为比较提供的值为N ...

  8. Java继承和访问修饰符

    继承 概念:为了提取两个类中公共代码,可以使用继承抽取重复性的代码到一个公共类中,这个公共的类称为父类(super class).继承于父类的类称为子类(sub class). 关键字     ext ...

  9. win10 下的python虚拟环境安装使用(使用powershell)

    安装virtualenv 若要使用python虚拟环境进行开发,首先需要安装virtualenv.命令:pip install virtualenv 我已经装过了

  10. 剑指offer 和为s的两个数字的调试

    这是整个调试, for (int i:s) cout<<i<<endl;这句话是c++11特性下的一种遍历方式 在编译的时候需要加-std=c++11,即g++ 41.cpp ...