python - 如何根据 HSV/RGB 值控制图像对比度
问题描述
我想知道是否可以通过修改图像的 RGB、HSV(或类似)值来修改图像的对比度。
我目前正在执行以下操作来处理亮度、饱和度和色调(在 python 中):
import numpy as np
from PIL import Image as img
import colorsys as cs
#Fix colorsys rgb_to_hsv function
#cs.rgb_to_hsv only works on arrays of shape: [112, 112,255] and non n-dimensional arrays
rgb_to_hsv = np.vectorize(cs.rgb_to_hsv)
hsv_to_rgb = np.vectorize(cs.hsv_to_rgb)
def luminance_edit(a, h, s, new_v):
#Edits V - Luminance
#Changes RGB based on new luminance value
r, g, b = hsv_to_rgb(h, s, new_v)
#Merges R,G,B,A values to form new array
arr = np.dstack((r, g, b, a))
return arr
我有一个单独的函数来处理来回 RGB 和 HSV 的转换。A 是 alpha 通道,h 是色调,s 是饱和度,new_v 是新的 V 值(亮度)。
是否可以根据这些值编辑对比度,还是我遗漏了什么?
编辑:我有一个单独的函数,可以导入图像、提取 RGBA 值并将它们转换为 HSL/HSV。让我们调用这个函数 x。
在提供的代码(函数 y)中,我们采用某些图像的色调(h)、饱和度(s)、亮度(v)和 alpha 通道(a)——函数 x 提供的 HSL 值。
代码编辑 V 值或亮度。它实际上并没有编辑对比度,它只是我想要实现的一个例子。使用上述数据(HSL/HSV/RGB)或类似数据,我想知道是否可以编辑图像的对比度。
解决方案
推荐阅读
- python - Python:一次将函数应用于目录中的一个文件,并在用户输入后移至下一个文件
- github - 向 GitHub 添加文件不会更新 Releases Assets 源代码
- python - Python Parseltongue 解码器 - 如何反编译?
- ios - 如何在此代码的后台集成相机
- javascript - Typescript + Require.js + PIXI 6 - 导入附加到窗口但在主范围内未定义
- javascript - 为什么我得到三个未定义的东西,为什么一次调用有两个输出?
- javascript - 如何从外部函数访问我的类中的构造函数成员?
- entity-framework-core - 使用 DB Context Factory 的身份存储
- c# - 选择列组合框时如何用数据库内容填充datagridview单元格
- java - 如何从 file.txt 中读取整数(矩阵)并添加到数组中?