[开源]Qt图片调整之饱和度调节
原理较简单不作详述
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图片调整之饱和度调节相关推荐
- [开源]Qt图片调整之亮度调节
原理: 获取图片像素点RGB分量值,直接加上亮度值. QImage AdjustBrightness(QImage Img, int iBrightValue) {int red, green, bl ...
- FPGA图像处理12_常用算法_饱和度调节
饱和度调节 饱和度调整的算法很多,基本上是越复杂的算法,调整后的图像视觉效果越好. 由于FPGA 不善长复杂的浮点运算,另一方面由于本文定位于基本的图像处理算法,此处只选择一种比较简单的饱和度算法. ...
- 台式计算机的美图,为什么我在台式电脑上看图片,图片色彩很饱和很鲜艳,而笔记本上看的图片有点暗淡呢...
为什么我在台式电脑上看图片,图片色彩很饱和很鲜艳,而笔记本上看的图片有点暗淡呢以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下 ...
- 调整亮度_【紫墨手机摄影课堂】图片调整
各位朋友们:"双节〞快乐!✨ "调整图片"是所有拯救废片手法的重中之重. 介绍"调整图片"的步骤和方法可能有一些枯燥,但是请大家还是最好坚持把它看完, ...
- 领卓教育:QT图片转换器
标题***领卓教育:QT图片转换器(ico<--------->png)*** 作者:妳看! ui界面: 用到的类: QFileDialog QDebug QByteArray QImag ...
- 开源免费图片文字识别 OCR 工具 tesseract v4.1.0 的 Docker 镜像制作与使用
开源免费图片文字识别 OCR 工具 tesseract v4.1.0 的 Docker 镜像制作与使用 一 背景 在日常的一些工作中,偶尔也需要我们把图片转换为文字.目前大部分办公软件还无法实现类似的 ...
- 怎样调节计算机安全度,如何调整鼠标灵敏度调节小攻略
如何调整鼠标灵敏度调节小攻略 导读:有时候鼠标精确度和移动速度很不灵活,这样就大大地影响了系统操作效率.如果调节鼠标适合自己的使用速度呢?就跟随百分网小编一起去了解下吧,想了解更多相关信息请持续关注我 ...
- Qt图片定时滚动播放器+透明过渡动画
目录 参考 结构 PicturePlay.pro main.cpp myqlabel.h 自定义QLabel myqlabel.cpp自定义QLabel pictureplay.h picturepl ...
- QT+高德地图Web服务API开发—静态地图开发Demo。QT组件提升、QT鼠标事件处理、Qt图片显示与移动、QT网络操作
说明 在本次项目中,我们使用QT开发框架,高德地图Web服务地图API,完成一个项目Demo,进行一次对QT.对编程的学习. 本系类文章所包含内容包括: 1.QT组件提升 2.QT鼠标事件处理 3.Q ...
最新文章
- 我好像还没睡醒,在说胡话...
- 树莓派人脸识别门禁opencv4.2_树莓派人脸识别实际应用:人脸识别门禁
- adb指令没有数据线,在WLAN下也可使用
- 1、MySQL为什么需要事务?
- boost::mp11::mp_empty相关用法的测试程序
- 方法:查询MongoDB数据库中最新一条数据(JAVA)
- WEB前端常用JavaScript代码整理(二)
- 【跳频扩频通信】基于matlab跳频扩频通信【含Matlab源码 1003期】
- CPT205-Computer Graphics
- 最大功率跟踪mppt
- H5 - template native模板 实现列表布局
- 决策树分析例题经典案例_分析模型案例解析:决策树分析法
- 全球与中国心脏临床信息系统(CIS)市场深度研究分析报告
- Sublime中文显示乱码
- ROS进阶功能—action通信机制
- unity 2022大三期末大作业 3D立体魔方游戏(附下载链接)
- Vmware中Linux 虚拟终端之间 无法切换 解决方法
- 树莓派can总线_RPi 2B: CAN总线通信 - 通过OBD-II接口获取车辆信息
- 柔性机械臂_德国Festo(费斯托)公布新作:模仿人手制造的柔性机械手
- DB2中对比两个表之间的数据差异