原理较简单不作详述

QImage AdjustSaturation(QImage Img, int iSaturateValue)
{int red, green, blue, nRed, nGreen, nBlue;int pixels = Img.width() * Img.height();unsigned int *data = (unsigned int *)Img.bits();float Increment = iSaturateValue/100.0;float delta = 0;float minVal, maxVal;float L, S;float alpha;for (int i = 0; i < pixels; ++i){nRed = qRed(data[i]);nGreen = qGreen(data[i]);nBlue = qBlue(data[i]);minVal = std::min(std::min(nRed, nGreen), nBlue);maxVal = std::max(std::max(nRed, nGreen), nBlue);delta = (maxVal - minVal) / 255.0;L = 0.5*(maxVal + minVal) / 255.0;S = std::max(0.5*delta / L, 0.5*delta / (1 - L));if (Increment > 0){alpha = std::max(S, 1 - Increment);alpha = 1.0 / alpha - 1;red = nRed + (nRed - L*255.0)*alpha;red = (red < 0x00) ? 0x00 : (red > 0xff) ? 0xff : red;green = nGreen + (nGreen - L*255.0)*alpha;green = (green < 0x00) ? 0x00 : (green > 0xff) ? 0xff : green;blue = nBlue + (nBlue - L*255.0)*alpha;blue = (blue < 0x00) ? 0x00 : (blue > 0xff) ? 0xff : blue;}else{alpha = Increment;red = L*255.0 + (nRed - L * 255.0)*(1+alpha);red = (red < 0x00) ? 0x00 : (red > 0xff) ? 0xff : red;green = L*255.0 + (nGreen - L * 255.0)*(1+alpha);green = (green < 0x00) ? 0x00 : (green > 0xff) ? 0xff : green;blue = L*255.0 + (nBlue - L * 255.0)*(1+alpha);blue = (blue < 0x00) ? 0x00 : (blue > 0xff) ? 0xff : blue;}data[i] = qRgba(red, green, blue, qAlpha(data[i]));}return Img;
}

[开源]Qt图片调整之饱和度调节相关推荐

  1. [开源]Qt图片调整之亮度调节

    原理: 获取图片像素点RGB分量值,直接加上亮度值. QImage AdjustBrightness(QImage Img, int iBrightValue) {int red, green, bl ...

  2. FPGA图像处理12_常用算法_饱和度调节

    饱和度调节 饱和度调整的算法很多,基本上是越复杂的算法,调整后的图像视觉效果越好. 由于FPGA 不善长复杂的浮点运算,另一方面由于本文定位于基本的图像处理算法,此处只选择一种比较简单的饱和度算法. ...

  3. 台式计算机的美图,为什么我在台式电脑上看图片,图片色彩很饱和很鲜艳,而笔记本上看的图片有点暗淡呢...

    为什么我在台式电脑上看图片,图片色彩很饱和很鲜艳,而笔记本上看的图片有点暗淡呢以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下 ...

  4. 调整亮度_【紫墨手机摄影课堂】图片调整

    各位朋友们:"双节〞快乐!✨ "调整图片"是所有拯救废片手法的重中之重. 介绍"调整图片"的步骤和方法可能有一些枯燥,但是请大家还是最好坚持把它看完, ...

  5. 领卓教育:QT图片转换器

    标题***领卓教育:QT图片转换器(ico<--------->png)*** 作者:妳看! ui界面: 用到的类: QFileDialog QDebug QByteArray QImag ...

  6. 开源免费图片文字识别 OCR 工具 tesseract v4.1.0 的 Docker 镜像制作与使用

    开源免费图片文字识别 OCR 工具 tesseract v4.1.0 的 Docker 镜像制作与使用 一 背景 在日常的一些工作中,偶尔也需要我们把图片转换为文字.目前大部分办公软件还无法实现类似的 ...

  7. 怎样调节计算机安全度,如何调整鼠标灵敏度调节小攻略

    如何调整鼠标灵敏度调节小攻略 导读:有时候鼠标精确度和移动速度很不灵活,这样就大大地影响了系统操作效率.如果调节鼠标适合自己的使用速度呢?就跟随百分网小编一起去了解下吧,想了解更多相关信息请持续关注我 ...

  8. Qt图片定时滚动播放器+透明过渡动画

    目录 参考 结构 PicturePlay.pro main.cpp myqlabel.h 自定义QLabel myqlabel.cpp自定义QLabel pictureplay.h picturepl ...

  9. QT+高德地图Web服务API开发—静态地图开发Demo。QT组件提升、QT鼠标事件处理、Qt图片显示与移动、QT网络操作

    说明 在本次项目中,我们使用QT开发框架,高德地图Web服务地图API,完成一个项目Demo,进行一次对QT.对编程的学习. 本系类文章所包含内容包括: 1.QT组件提升 2.QT鼠标事件处理 3.Q ...

最新文章

  1. 我好像还没睡醒,在说胡话...
  2. 树莓派人脸识别门禁opencv4.2_树莓派人脸识别实际应用:人脸识别门禁
  3. adb指令没有数据线,在WLAN下也可使用
  4. 1、MySQL为什么需要事务?
  5. boost::mp11::mp_empty相关用法的测试程序
  6. 方法:查询MongoDB数据库中最新一条数据(JAVA)
  7. WEB前端常用JavaScript代码整理(二)
  8. 【跳频扩频通信】基于matlab跳频扩频通信【含Matlab源码 1003期】
  9. CPT205-Computer Graphics
  10. 最大功率跟踪mppt
  11. H5 - template native模板 实现列表布局
  12. 决策树分析例题经典案例_分析模型案例解析:决策树分析法
  13. 全球与中国心脏临床信息系统(CIS)市场深度研究分析报告
  14. Sublime中文显示乱码
  15. ROS进阶功能—action通信机制
  16. unity 2022大三期末大作业 3D立体魔方游戏(附下载链接)
  17. Vmware中Linux 虚拟终端之间 无法切换 解决方法
  18. 树莓派can总线_RPi 2B: CAN总线通信 - 通过OBD-II接口获取车辆信息
  19. 柔性机械臂_德国Festo(费斯托)公布新作:模仿人手制造的柔性机械手
  20. DB2中对比两个表之间的数据差异

热门文章

  1. Windows C盘清理方法
  2. 【计算机组成原理】计算机组成原理——概述篇
  3. AFPM100/B消防电源在南京基地模检具业务搬迁改造项目的应用
  4. 网络切片使能千行百业,助5G无所不能,5G网络切片“切”的是什么?
  5. 国外数藏动态:7月6日至10日即将发售的藏品
  6. Blocking Queue
  7. e575 viminfo 错误.
  8. Xiaomi Redmi Note7刷机
  9. PHP日历函数相关预定义常量
  10. 这里整理了基于java平台的常用资源