图像处理中,图像亮度调节可能是最简单的算法了,非常常见的线性运算即可完成亮度调节,比如所有像素点亮度值乘或者加一个增强系数,使得图像整体变亮或者变暗。看过一些相关开源代码,常见的操作是乘以一个亮度调节系数。但是,这样做很容易使图像出现过饱和现象,即亮度值超出255。photoshop中是如何实现的不得而知,每个版本可能也不一样。还是说说我的实现方法,其实就是在调节过程中,根据像素点亮度,做非线性调节,即高光、阴影部分调节小一点,中间部分多调节一些,这样亮度调节看着更自然一些。下面是示例代码:

void ImageBrightness(BMPINFO *pSrcBitmap, float strength)
{int brightness = (int)(strength*100);uchar lookupTable[256];for (int i = 0; i < 256; i++){lookupTable[i] = (uchar)MIN(255, MAX(0, i + sin(FILTER_PI*i / 255.0f)*brightness));}int size = pSrcBitmap->lWidth*pSrcBitmap->lHeight;uchar* pSrcData = pSrcBitmap->pPlane[0];for (int i = 0; i < size; i++, pSrcData+=4){pSrcData[AXJ_BLUE] = lookupTable[pSrcData[AXJ_BLUE]];pSrcData[AXJ_GREEN] = lookupTable[pSrcData[AXJ_GREEN]];pSrcData[AXJ_RED] = lookupTable[pSrcData[AXJ_RED]];}
}

亮度调节示例图片,上面为原图,下面为结果图。

图像处理之图像亮度调节相关推荐

  1. opencv计算图像亮度调节_OpenCV教程创建Trackbar图像对比度、亮度值调整

    这篇文章中我们一起学习了如何在OpenCV中用createTrackbar函数创建和使用轨迹条,以及图像对比度.亮度值的动态调整. 文章首先详细讲解了OpenCV2.0中的新版创建轨迹条的函数crea ...

  2. opencv计算图像亮度调节_opencv调整图像亮度对比度

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

  3. opencv计算图像亮度调节_【opencv学习笔记七】访问图像中的像素与图像亮度对比度调整...

    今天我们来看一下如何访问图像的像素,以及如何改变图像的亮度与对比度. 在之前我们先来看一下图像矩阵数据的排列方式.我们以一个简单的矩阵来说明: 对单通道图像排列如下: 对于双通道图像排列如下: 那么对 ...

  4. MATLAB图像处理imadjust()函数调节图像的对比度示例

    imadjust()函数 J=imadjust(I)  将强度图像为I的值映射到J中的新值,使得1%的数据在低强度和高强度I时饱和.这将增加了输出图像J的对比度. J = imadjust(I,[LO ...

  5. MATLAB图像处理学习——图像增强技术(附图像增强方法代码)

    目录 1.概论 (1)图像增强技术简介 (2)图像质量评估 2.空间域内的图像增强 (1)显示灰度直方图 (2)图像灰度值调整 (3)图像亮度调节 (4)灰度图像的反转变换 3.直方图增强 (1)RG ...

  6. python图像处理《数字图像处理与python实现》读书笔记

    文章目录 很重要! 第一章 基础知识 1.1 图像采样和量化 1.2 图像的表示和可视化 1.3 简单图像处理 参考 很重要! scikit-image的开发文档:https://scikit-ima ...

  7. 基于MATLAB的数字图像处理系统

    基于MATLAB的数字图像处理系统 摘要:数字图像处理技术是20世纪60年代发展起来的一门新兴学科,随着图像处理理论和方法的进一步完善,使得数字图像处理技术在各个领域得到了广泛应用,并显示出广阔的应用 ...

  8. OpenGL 亮度调节

    目录 一.OpenGL 亮度调节效果演示 1.IOS 演示效果 2.Windows OpenGL ES 演示效果 3.Windows OpenGL 演示效果 二.OpenGL 亮度调节源码下载 1.I ...

  9. 数字图像处理: 亮度调整

    图像亮度.对比度.饱和度和锐化之间并不是彼此独立的,改变其中一个特征可能会同时引起图像其他特征的变化,至于变化的程度取决于图像本身的特性,先建立一个概念,在后面的会在详述 1.亮度基本概念 图像亮度通 ...

最新文章

  1. python批量读取grib_windows python读取grib2数据
  2. 构建之法第四章读后感
  3. 数据存储之-SQLite数据库二
  4. flex 结合sandy引擎创作
  5. FreeSql.Generator命令行代码生成器是如何实现的
  6. xlwings 合并单元格 读取_xlwings,让excel飞起来
  7. Oracle wm_concat() 函数
  8. springcloud多租户实现原理-Saas多租户实现-以及几种方案_设计思路---springcloud工作笔记108
  9. string.Empty与,null的区别
  10. cass中的地形图打印细节
  11. rapidminer java_在Java应用程序RapidMiner的整合(Integration of RapidMiner i
  12. 中值定理5-泰勒中值定理
  13. 【Day5.4】高棉风格的柴瓦塔纳兰寺
  14. 安装visio viewer2013成功后仍无法使用
  15. Selenium WebDriver API 进阶使用,模块化参数化进行自动化测试设计
  16. Vanilla是什么
  17. 黑马程序员------StringBuffer描述(黑马视频)
  18. virgo tomcat下载
  19. html中加艺术字体,CSS实现漂亮的大标题文字效果
  20. 网银支付接口申请介绍

热门文章

  1. Spring进阶(五):Spring事务管理(详解+实例)
  2. CloudFoundry DEA运作源码分析
  3. LeetCode 659 Split Array into Consecutive Subsequences
  4. 盘点保护隐私安全的浏览器,密码锁屏这个功能,真香
  5. 痞子衡嵌入式:恩智浦i.MX RT1xxx系列MCU启动那些事(5)- 再聊eFUSE及其烧写方法...
  6. 资金互助社学习园地(二) 存贷挂钩---金融机构实现存贷两旺的利器
  7. Unity发布IOS时设置link.xml遇到的一个fullname不正确的问题
  8. C语言初阶学习-----01初识C语言
  9. linux ssh快捷登录服务器
  10. 米莱狄的机器人是_米莱狄的主要伤害来源于丢出的1技能的飞机,而不起眼的小机器人可以无视掉?...