调整图像的亮度和对比度—opencv
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的更多相关文章
- Opencv学习笔记4:Opencv处理调整图片亮度和对比度
一.理论基础 在数学中我们学过线性理论,在图像亮度和对比度调节中同样适用,看下面这个公式: 在图像像素中其中: 参数f(x)表示源图像像素. 参数g(x) 表示输出图像像素. 参数a(需要满足a> ...
- Python-OpenCV——亮度和对比度
亮度与对比度 亮度调整是将图像像素的强度整体变大/变小,对比度调整指的是图像暗处变得更暗,亮出变得更亮,从而拓宽某个区域内的显示精度. OpenCV中亮度和对比度应用这个公式来计算:g(x) = αf ...
- C#中如何调整图像大小
在本篇文章中,我将介绍如何在C#中来调整你想要的图像大小.要实现这一目标,我们可以采取以下几个步骤: 1.首先要获取你想要调整大小的图像: string path = Server.MapPath(& ...
- [译]Android调整图像大小的一些方法
翻译自 某大神在Stack Overflow里的自问自答 (一般我们将Bitmap翻译为位图,但为了更好理解,在本文中我将它翻译成图像): 我们在开发的时候,经常需要从服务器中加载图像到客户端中,但有 ...
- glsl计算sprite的亮度饱和度对比度
//glsl计算sprite的亮度饱和度对比度 #ifdef GL_ES precision mediump float; #endif uniform sampler2D u_texture; va ...
- (opencv08)cv.resize()调整图像大小
(opencv08)cv.resize()调整图像大小 img = cv2.resize(src, dsize, dst=None, fx=None, fy=None, interpolation=N ...
- 如何在 HTML 中调整图像大小?
了解在 HTML 中调整图像大小的不同技术.何时应避免在浏览器端调整大小,以及在 Web 上操作和提供图像的正确方法. 如果您的图像不适合布局,您可以在 HTML 中调整其大小.在 HTML 中调整图 ...
- [ActionScript 3.0] 亮度、对比度、饱和度、色相的调整
import fl.motion.ColorMatrix; import flash.filters.ColorMatrixFilter; //**调整亮度**// var ld_Matrix:Col ...
- opencv:通过滑动条调节亮度和对比度
示例代码: #include <opencv.hpp> using namespace cv; using namespace std; void on_change(int, void* ...
随机推荐
- java技术小白的入门
一.入门书籍 1,疯狂java讲义 2,java编程思想 3,Maven权威指南 4,Spring 3.0就是这么简单 5,Spring技术内幕 6,Spring实战 7,Maven实战 二.入门业务 ...
- #include stdio.h(5)
#include <stdio.h> int main() { //1.数组的排序-冒泡排序 /* 1.规则:相邻的两个数据进行比较 2.如果有N个数据,需要选择N-1次参照物来比较, 因 ...
- Struts2_Struts标签大致内容
Struts-Tags1.通用标签 a) property b) set i.默认为 action scope,会将值放入 request 和 ActionContext中 ii. page.requ ...
- Cordova各个插件使用介绍系列(七)—$cordovaStatusbar手机状态栏显示
在项目中发现Android和iOS在手机状态栏样式不一样,然后就查到有一个cordova插件可以解决这个问题 1.下载插件$cordovaStatusbar命令: cordova plugin add ...
- 08、Spark常用RDD变换
08.Spark常用RDD变换 8.1 概述 Spark RDD内部提供了很多变换操作,可以使用对数据的各种处理.同时,针对KV类型的操作,对应的方法封装在PairRDDFunctions trait ...
- API:Sign签名的执行流程
Sign签名存在目的:为了防止不法分子修改参数数据,进而攻击服务器,导致数据泄露或从中获得利益 例如:一个接口是用户把积分转帐给他的朋友,修改后,变为转帐到攻击者的帐户,这样,攻击者就能得到利益 ...
- OpenGL纹理高级
矩形纹理 对于二维纹理来说,除了GL_TEXTURE_2D之外,使用GL_TEXTURE_RECTANGLE就可以使用矩形纹理. 矩形纹理几大特点: 不能Mip,只能加载glTexImage2D的le ...
- mysql轮廓总结
架构=数据类型.索引.分片.主从复制原理.数据备份 学习软件,都应该先从架构入手,每一层掌握就行.mysql难吗?从其架构层开始,就不难啦. 架构结构:http://www.cnblogs.com/h ...
- @RequiresPermissionss是否可以填写多种权限标识,只要满足其一就可以访问?
@RequiresPermissionss是否可以填写多种权限标识,只要满足其一就可以访问? 发布于 180天前 作者 qq_b02c4863 144 次浏览 复制 上一个帖子 下一个帖子 ...
- HDU(1016),打素数环
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1016 哈哈,状态来了就是不一样,很快就A了. 注意的位置是,最后一个点,要与第一个点比较. #incl ...