图像变换可以看作如下:
- 像素变换 – 点操作
- 邻域操作 – 区域 调整图像亮度和对比度属于像素变换-点操作
//创建一张跟原图像大小和类型一致的空白图像、像素值初始化为0
Mat new_image = Mat::zeros( image.size(), image.type() ); //确保值大小范围为0~255之间
saturate_cast<uchar>(value) //给每个像素点每个通道赋值
Mat.at<Vec3b>(y,x)[index]=value
int main(int argc, char** argv) {

    Mat src, dst;
src = imread(STRPAHT2);
if (!src.data) {
printf("could not load image...\n");
return -;
}
char input_win[] = "input image";
cvtColor(src, src, CV_RGB2GRAY);
namedWindow(input_win, CV_WINDOW_AUTOSIZE);
imshow(input_win, src); int height = src.rows;
int width = src.cols;
//创建一张跟原图像大小和类型一致的空白图像、像素值初始化为0
dst = Mat::zeros(src.size(), src.type());
float alpha = 1.2;
float beta = ; Mat m1;
src.convertTo(m1, CV_32F);
for (int row = ; row < height; row++) {
for (int col = ; col < width; col++) {
if (src.channels() == ) {
float b = m1.at<Vec3f>(row, col)[];// blue
float g = m1.at<Vec3f>(row, col)[]; // green
float r = m1.at<Vec3f>(row, col)[]; // red // output
dst.at<Vec3b>(row, col)[] = saturate_cast<uchar>(b*alpha + beta);
dst.at<Vec3b>(row, col)[] = saturate_cast<uchar>(g*alpha + beta);
dst.at<Vec3b>(row, col)[] = saturate_cast<uchar>(r*alpha + beta);
}
else if (src.channels() == ) {
float v = src.at<uchar>(row, col);
dst.at<uchar>(row, col) = saturate_cast<uchar>(v*alpha + beta);
}
}
} char output_title[] = "contrast and brightness change demo";
namedWindow(output_title, CV_WINDOW_AUTOSIZE);
imshow(output_title, dst); waitKey();
return ;
}

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

  1. 跟我一起学opencv 第五课之调整图像亮度和对比度

    一.调整图像亮度与对比度 1.图像变换 ---像素变换-点操作 ---邻域操作-区域操作 调整图像亮度和对比度属于像素变换-点操作 公式为:g(i,j) = αf(i,j) + β 其中α>0 ...

  2. openCV - 5~7 图像混合、调整图像亮度与对比度、绘制形状与文字

    5. 图像混合 理论-线性混合操作.相关API(addWeighted) 理论-线性混合操作 用到的公式 (其中 α 的取值范围为0~1之间) 相关API(addWeighted) 参数1:输入图像M ...

  3. opencv调整图像亮度对比度

    图像处理 图像变换就是找到一个函数,把原始图像矩阵经过函数处理后,转换为目标图像矩阵. 可以分为两种方式,即像素级别的变换和区域级别的变换 Point operators (pixel transfo ...

  4. Opencv改变图像亮度和对比度以及优化

    https://blog.csdn.net/u013139259/article/details/52145377 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.cs ...

  5. [OpenCV] 图像亮度和对比度调整

    对比度调整的原理参考这篇博客 以下是代码实现: #include <iostream> #include "opencv2/core.hpp" #include &qu ...

  6. opencv学习笔记-图像对比度、亮度调节

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

  7. OpenCV(5) 对比度和亮度

      公式: 两个参数 \alpha > 0 和 \beta 一般称作 增益 和 偏置 参数.我们往往用这两个参数来分别控制 对比度 和 亮度 .   #include "stdafx. ...

  8. opencv 彩色图像亮度、对比度调节 直方图均衡化

    直接上代码: #include <Windows.h> #include <iostream>// for stand I/O #include <string> ...

  9. 转载:Opencv调整运行窗口图片的大小

    本文来自:http://blog.csdn.net/cumtml/article/details/52807961 Opencv在运算时显示图片问题 总结在opencv中,图片显示的问题.简要解决图片 ...

随机推荐

  1. python2.x和python3.x版本共存时选择启动的版本

    在windows环境下装好python2.7和python3.6之后,我之前一直是用了很笨的办法去区分版本 那就是把各个版本python安装目录下的python.exe分别改为python2.exe和 ...

  2. Redis高级客户端Lettuce详解

    前提 Lettuce是一个Redis的Java驱动包,初识她的时候是使用RedisTemplate的时候遇到点问题Debug到底层的一些源码,发现spring-data-redis的驱动包在某个版本之 ...

  3. FileDown

    import org.apache.hadoop.conf.*; import org.apache.hadoop.fs.*; import java.io.IOException; import j ...

  4. Apache和Tomcat 配置负载均衡(mod-proxy方式)-粘性session

    Tomcat集群配置后端Tomcat Server为支持AJP的独立服务,前端Apache配置为粘性会话(sticky-session),Tomcat不配置Cluster配置和Session复制. 配 ...

  5. 对于java的Sting.intern()的一些注意

    今天翻看书时遇到了这样一个问题,对于String.intern()方法又有了一些认识和看法.首先我们看它的api 大意就是intern()方法会在常量池中记录首次出现的实例引用,但是在jdk1.6中却 ...

  6. 物料导出FreeMaker模板定义

    <?xml version="1.0"?><?mso-application progid="Excel.Sheet"?><Wor ...

  7. Salesforce学习之路-developer篇(三)利用Visualforce Page实现页面的动态刷新案例学习

    Visualforce是一个Web开发框架,允许开发人员构建可以在Lightning平台上本地托管的自定义用户界面.其框架包含:前端的界面设计,使用的类似于HTML的标记语言:以及后端的控制器,使用类 ...

  8. Scala 多继承顺序

    Trait多继承顺序: 准则: 如果有超类,则先调用超类的函数. 如果混入的trait有父trait,它会按照继承层次先调用父trait的构造函数. 如果有多个父trait,则按顺序从左到右执行. 所 ...

  9. MongoDB 学习笔记之 Aggregation Pipeline实战实现inner join

     Aggregation Pipeline实战实现inner join: leftT集合: comments集合: 现在我们要用aggregation实现inner join db.comments. ...

  10. win10安装python

    下载地址:https://www.python.org/downloads/release/python-365/ 安装完成后,在cmd里输入  python ,检查是否安装成功