Qt图像处理技术三:图片亮度与对比度处理
Qt图像处理技术三:图片亮度和对比度处理
github地址
实战应用项目:
github :https://github.com/dependon/simple-image-filter //纯qt图像处理项目
效果图

公式
value都是取0-300
red=0.01对比值red-150+曝光值;
green=0.01对比值green-150+曝光值;
blue=0.01对比值blue-150+曝光值;
代码(容易理解)
QImage lightContrastImage(const QImage &img, int light, int Contrast)
{
QImage imgCopy = QImage(img);
for (int y = 0; y < img.height(); y++) {
for (int x = 0; x < img.width(); x++) {
float r = light * 0.01 * qRed(img.pixel(x, y)) - 150 + Contrast;
float g = light * 0.01 * qGreen(img.pixel(x, y)) - 150 + Contrast;
float b = light * 0.01 * qBlue(img.pixel(x, y)) - 150 + Contrast;
r = Bound(0, r, 255);
g = Bound(0, g, 255);
b = Bound(0, b, 255);
imgCopy.setPixel(x, y, qRgb(r, g, b));
}
}
return imgCopy;
}
源码(相对上述源码快5-20倍,因为绕过了Qt每个取点的检测)
QImage QImageAPI::lightContrastImage(const QImage &img, int light, int Contrast)
{
QImage imgCopy;
if (img.format() != QImage::Format_RGB888) {
imgCopy = QImage(img).convertToFormat(QImage::Format_RGB888);
} else {
imgCopy = QImage(img);
}
uint8_t *rgb = imgCopy.bits();
if (nullptr == rgb) {
return QImage();
}
int r;
int g;
int b;
int size = img.width() * img.height();
for (int i = 0; i < size ; i++) {
r = light * 0.01 * rgb[i * 3] - 150 + Contrast;
g = light * 0.01 * rgb[i * 3 + 1] - 150 + Contrast;
b = light * 0.01 * rgb[i * 3 + 2] - 150 + Contrast;
r = Bound(0, r, 255);
g = Bound(0, g, 255);
b = Bound(0, b, 255);
rgb[i * 3] = r;
rgb[i * 3 + 1] = g;
rgb[i * 3 + 2] = b;
}
return imgCopy;
}
联系我
liuminghang0821@qq.com
有问必答,期待你的指教肯小星星
Qt图像处理技术三:图片亮度与对比度处理的更多相关文章
- Opencv学习笔记4:Opencv处理调整图片亮度和对比度
一.理论基础 在数学中我们学过线性理论,在图像亮度和对比度调节中同样适用,看下面这个公式: 在图像像素中其中: 参数f(x)表示源图像像素. 参数g(x) 表示输出图像像素. 参数a(需要满足a> ...
- C#调整图片亮度和对比度
BitmapSource bitmap = null; ; ; private void SetBrightness(int degree) { degree = degree * / ; Write ...
- Qt开发技术:QCharts(三)QCharts样条曲线图介绍、Demo以及代码详解
若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...
- Qt开发技术:Q3D图表开发笔记(三):Q3DSurface三维曲面图介绍、Demo以及代码详解
前言 qt提供了q3d进行三维开发,虽然这个框架没有得到大量运用也不是那么成功,性能上也有很大的欠缺,但是普通的点到为止的应用展示还是可以的. 其中就包括华丽绚烂的三维图表,数据量不大的时候是可 ...
- Qt自适应大小显示图片,添加菜单
由于后面的图像处理需要UI,OpenCV自带也不怎么会,MFC实在懒得学的.听同学说Qt不错,就用Qt做UI了. 本文主要介绍三个内容:在Qt Creator中使用OpenCV2.Qt中自适应显示图片 ...
- HTML5图形图像处理技术研究
摘要:图形图像处理平台大部分是传统的C/S架构的桌面应用程序,维护困难,共享性差,而B/S架构的Web程序具有易维护.易共享的优点.本文研究了基于HTML5的Web图形图像处理技术,用HTML5实现了 ...
- GDI+图形图像处理技术中Pen和Brush的简单使用和简单图形的绘制(C#)
1.Graphics Graphics对象是GDI+绘图表面,因此在Windows窗体应用程序中要使用GDI+创建绘图,必须要先创建Graphics.在给窗体注册一个Paint事件后,Graphics ...
- BackgroundCheck – 根据图片亮度智能切换元素样式
BackgroundCheck 是一个轻量的 JavaScript 库,能够根据元素后面的图片的亮度自动切换元素样式.例如在图片幻灯片功能中,根据图片亮度调整导航箭头的颜色,这样让图片和导航的颜色形成 ...
- Python-OpenCV——亮度和对比度
亮度与对比度 亮度调整是将图像像素的强度整体变大/变小,对比度调整指的是图像暗处变得更暗,亮出变得更亮,从而拓宽某个区域内的显示精度. OpenCV中亮度和对比度应用这个公式来计算:g(x) = αf ...
- moviepy音视频剪辑:lum_contrast什么时候使用以及图像处理什么时候需要调整亮度与对比度
☞ ░ 前往老猿Python博文目录 ░ 一.亮度.对比度的概念 图像的亮度(luminosity )也即对明度的度量(参考<音视频处理基础知识扫盲:数字视频YUV像素表示法以及视频帧和编解码概 ...
随机推荐
- C# 网页截图全攻略:三种技术与 Chrome 路径查找指南
全局配置 string url = "https://blog.csdn.net/sunshineGGB/article/details/122316754"; 一.Puppete ...
- 基于自注意力机制的轻量级人体姿态估计(Lightweight Human Pose Estimation Based on Self-Attention Mechanism)
写在前面 本文是一篇于2023年3月21日发表在2023 International Conference on Big Data, Environmental Industry and Materi ...
- UE5 C++ 程序进程退出
// Fill out your copyright notice in the Description page of Project Settings. #pragma once #include ...
- php的token管理类(AI生成)
当然,以下是一个简单的 PHP 类,用于生成和管理令牌(token).这个类可以生成一个随机的令牌.验证令牌是否有效,并允许设置一个令牌的过期时间. <?php class Token { pr ...
- VTK-8.2.0源码编译和初步使用(Cmake+VS2015+Qt5.14.2)
一.准备数据 1.首先确保已安装VS5015和Qt5.14.2 2.下载Cmake并安装:Download CMake 3.下载VTK-8.2.0源码和数据并解压:Download | VTK 二.C ...
- Docker中在不同网段下的容器的互联
首先要启动docker: 拉取busybox镜像: 查看本地是否有这个镜像的命令是: 接下来咱们就要来查询docker的网络: 你会看到一个docker0 这是docker默认的网段,在docker里 ...
- Oracle 内存(SGA,PGA)详细介绍
一.名词解释(1)SGA:SystemGlobal Area是OracleInstance的基本组成部分,在实例启动时分配;系统全局域SGA主要由三部分构成:共享池.数据缓冲区.日志缓冲区.(2)共享 ...
- 详细介绍MessageQueueSelector
一.MessageQueueSelector 详解 MessageQueueSelector 是 RocketMQ 提供的一个接口,用于自定义消息发送时的队列选择策略. 通过实现该接口, 开发者可以控 ...
- 康谋分享 | 确保AD/ADAS系统的安全:避免数据泛滥的关键!
为确保AD/ADAS系统的安全性,各大车企通常需要收集.处理和分析来自于摄像头.激光雷达等传感器的数据,以找出提高系统安全性和性能的方法.然而在数据收集过程中,不可避免地会出现大量无价值数据,造成数据 ...
- 康谋分享 | ADTF过滤器全面解析:构建、配置与数据处理应用
在ADTF (Automotive Data and Time-Triggered Framework)中,过滤器(Filter)扮演着数据处理的核心角色.过滤器是处理数据流的基本单元,它们接收.处理 ...