调整亮度、对比度、饱和度和色相
调整亮度、对比度、饱和度和色相 调整亮度、对比度、饱和度和色相 调整亮度、对比度、饱和度和色相
补充:transform.invert 预处理逆操作
from PIL import Image
from torchvision import transforms
import torch
import numpy as npdef transform_invert(img_, transform_train):"""将data 进行反transfrom操作:param img_: tensor:param transform_train: torchvision.transforms:return: PIL image"""if 'Normalize' in str(transform_train):# 分析transforms里的Normalizenorm_transform = list(filter(lambda x: isinstance(x, transforms.Normalize), transform_train.transforms))mean = torch.tensor(norm_transform[0].mean, dtype=img_.dtype, device=img_.device)std = torch.tensor(norm_transform[0].std, dtype=img_.dtype, device=img_.device)img_.mul_(std[:, None, None]).add_(mean[:, None, None]) # 广播三个维度 乘标准差 加均值img_ = img_.transpose(0, 2).transpose(0, 1) # C*H*W --> H*W*C# 如果有ToTensor,那么之前数值就会被压缩至0-1之间。现在需要反变换回来,也就是乘255if 'ToTensor' in str(transform_train):img_ = np.array(img_) * 255# 先将np的元素转换为uint8数据类型,然后转换为PIL.Image类型if img_.shape[2] == 3: # 若通道数为3 需要转为RGB类型img_ = Image.fromarray(img_.astype('uint8')).convert('RGB')elif img_.shape[2] == 1: # 若通道数为1 需要压缩张量的维度至2Dimg_ = Image.fromarray(img_.astype('uint8').squeeze())else:raise Exception("Invalid img shape, expected 1 or 3 in axis 2, but got {}!".format(img_.shape[2]))return img_if __name__ == '__main__':img = Image.open(r"./test.jpg").convert('RGB')img_transform = transforms.Compose([transforms.ToTensor()])img_tensor = img_transform(img)# img_tensor.unsqueeze_(dim=0) # C*H*W to B*C*H*Wprint(img_tensor)print(img_tensor.shape)img = transform_invert(img_tensor, img_transform) # input: shape=[c h w]img.show()
调整亮度、对比度、饱和度和色相:ColorJitter
功能:调整亮度、对比度、饱和度和色相
主要参数说明:
- brightness:亮度调整因子
当为a时,从[max(0, 1-a), 1 +a]中随机选择
当为(a, b)时,从[a, b]中 - contrast:对比度参数,同brightness
- saturation:饱和度参数,同brightness
- hue:色相参数,当为a时,从[-a, a]中选择参数,注:0<= a <= 0.5
原图
1.亮度调整
from PIL import Image
from torchvision import transforms
from utils import transform_invertif __name__ == '__main__':# 1.读取图像img = Image.open(r"./cat.png").convert('RGB')# 2.确定预处理方式img_transform = transforms.Compose([## transforms.Resize((300,300)), # 重置大小为300*300transforms.ColorJitter(brightness=0.5), # 亮度transforms.ToTensor() # 转Tensor型变量])# 3.进行预处理img_tensor = img_transform(img)# 4.逆Transform变换img = transform_invert(img_tensor, img_transform) # input: shape=[c h w]# 5.进行预处理效果展示img.show()
2. 调整对比度
from PIL import Image
from torchvision import transforms
from utils import transform_invertif __name__ == '__main__':# 1.读取图像img = Image.open(r"./cat.png").convert('RGB')# 2.确定预处理方式img_transform = transforms.Compose([## transforms.Resize((300,300)), # 重置大小为300*300transforms.ColorJitter(contrast=0.1), # 对比度transforms.ToTensor() # 转Tensor型变量])# 3.进行预处理img_tensor = img_transform(img)# 4.逆Transform变换img = transform_invert(img_tensor, img_transform) # input: shape=[c h w]# 5.进行预处理效果展示img.show()
3.调整饱和度
from PIL import Image
from torchvision import transforms
from utils import transform_invertif __name__ == '__main__':# 1.读取图像img = Image.open(r"./cat.png").convert('RGB')# 2.确定预处理方式img_transform = transforms.Compose([## transforms.Resize((300,300)), # 重置大小为300*300transforms.ColorJitter(saturation=0.1), # 饱和度transforms.ToTensor() # 转Tensor型变量])# 3.进行预处理img_tensor = img_transform(img)# 4.逆Transform变换img = transform_invert(img_tensor, img_transform) # input: shape=[c h w]# 5.进行预处理效果展示img.show()
4.调整色相
from PIL import Image
from torchvision import transforms
from utils import transform_invertif __name__ == '__main__':# 1.读取图像img = Image.open(r"./cat.png").convert('RGB')# 2.确定预处理方式img_transform = transforms.Compose([## transforms.Resize((300,300)), # 重置大小为300*300transforms.ColorJitter(hue=0.8), # 色相transforms.ToTensor() # 转Tensor型变量])# 3.进行预处理img_tensor = img_transform(img)# 4.逆Transform变换img = transform_invert(img_tensor, img_transform) # input: shape=[c h w]# 5.进行预处理效果展示img.show()
调整亮度、对比度、饱和度和色相相关推荐
- 图像处理之调整亮度与饱和度
图像处理之调整亮度与饱和度 什么是亮度: 简单点说一幅图像的亮度属性是图像的RGB值的大小,RGB各个值越大亮度越高RGB 分量取值范围为0-255之间.调整图像亮度. 什么是饱和度: 饱和度是是指颜 ...
- windows android 对比度,色彩对比度饱和度基本测试
色彩对比度饱和度基本测试 实际显示效果方面,第一印象上这块LTPS屏幕的色彩表现还是令人满意的,只是在屏幕亮度方面略有不足,下面我们将着重通过Display Tester这款软件当中容纳的多项屏幕测试 ...
- 图像调整亮度饱和度 c语言,图像处理之调整亮度与饱和度
图像处理之调整亮度与饱和度 什么是亮度: 简单点说一幅图像的亮度属性是图像的RGB值的大小,RGB各个值越大亮度越高RGB 分量取值范围为0-255之间.调整图像亮度. 什么是饱和度: 饱和度是是指颜 ...
- android bitmap 色温,色温对比度饱和度 屏幕量化测试_手机Android频道-中关村在线...
既然是1080p四核手机横评,那么本次横评的重点无疑在于屏幕与性能跑分.对于屏幕部分,我们依旧请出了去年横评时引入评测环节的BM-7A亮度色度仪对参与测试的机型进行了色温.饱和度.对比度的测试.这一设 ...
- Unity 3D 游戏通用系统设置页面,自定义按键设置,背景虚化,图像设置,亮度对比度饱和度音量调节,分辨率窗口化,帧率垂直同步,抗锯齿,阴影质量,纹理质量设置
简易的游戏通用设置页面 本文章包含所有代码及UI结构 页面效果: UI结构(便于管理): 代码: 思路: 整个页面的父物体SettingPanel上挂载管理代码,用于获取设置页面中所有的功能按钮,拖动 ...
- python numpy opencv调整图片亮度对比度饱和度
python 调整图片亮度对比度饱和度 安装依赖库 亮度变换 对比度变换 综合调整(完整代码) (想要完整代码直接划到最后) 原理比较简单,本质上是对图像各个通道的每个像素点做线性变换,对超出范围[0 ...
- 图片饱和度,色相,亮度调整
改变图片颜色,会让图片更具灵活性和趣味性,那我们通常在修改图片的像素色差时,如何实现呢? 效果图: 饱和度: 色相: 亮度: OK,看完效果了,那么我们就用最简单的方式实现这几种有逼格的效果吧: xm ...
- android 图像对比度,关于opengl-es:Android-OpenGL-ES-反相曝光对比度饱和度色调滤镜
通过前几篇的博客,咱们应该队OpenGL有了根底的意识,那么咱们就该来点实际了,它来了,它来了,真正的滤镜它来了 先放效果图 滤镜的学习是个循序渐进的过程,咱们本章先说一下简略的滤镜,也让读者揭开一角 ...
- PS里的亮度/对比度/饱和度/色阶算法-OpenGL实现
1.亮度 PS里的亮度调整,主要是控制图片整体的亮度,可以弥补曝光过度和曝光补足需要补光的问题. 对RGB图像来说,亮度算法有很多种,最简单的一种就是直接整体提升或降低像素的RGB值.(RGB值为0到 ...
最新文章
- 桥接模式(Bridge)
- Android实例-为程序创建快捷方式(未测试)
- 以新ICT构建全联接的电力物联网,迈入能源智能时代
- 【数据分析】年轻人逃离大城市之后的下一站选哪儿?用数据来为你揭晓
- 大学计算机python期末考试用什么软件_大学计算机--Python算法实践_章节测验,期末考试,慕课答案查询公众号...
- python中breakpoint什么意思_it/breakpoint是什么意思
- ubuntu16.04下Caffe绘制训练过程的loss和accuracy曲线
- VSCode调试Python时终端输出中文乱码解决方法1
- 华为鸿蒙 os 适配机型曝光,华为鸿蒙OS 2.0首批适配机型曝光
- Kongzue的APP拍照相册选择工具
- 绪论-第1章-《数据结构习题集》答案解析-严蔚敏吴伟民版
- Android ListView优化总结
- Kaggle 机器学习实战 朴素贝叶斯(原理+西瓜数据集实战)
- Windows基础 主机加固
- 班级小工具一【微信接龙】
- 剪了 20% 的刘海、120Hz 刷新率、1TB 存储,最高售价为 12999 元的 iPhone 13 系列来了!
- 硬件电路设计-FPGA(EP4CE6)最小系统
- 好风凭借力,送我上青云
- 拆掉思维里的墙-阅读记录
- 世界最大的两个BT网站被迫下线 ExtraTorrent遭遇DDoS攻击
热门文章
- “海大学舍”Scrum Meeting(第十周会议记录)
- Dell戴尔笔记本电脑G15 5520原装出厂Windows11系统恢复原厂OEM系统
- RedHat上面部署iObjects C++
- 我的Blog东一个西一个!
- Linux学习思维导图
- NC65审批流、业务流开发流程,及可能遇到的问题
- 学习学习学习学习学习学习学习学习学习学习学习
- android仿酷狗界面,Android仿酷狗动感歌词(支持翻译和音译歌词)显示效果
- dell客服(dell客服维修中心)
- P9065 [yLOI2023] 云梦谣 题解