1

我有一个 rgb 图像 (rgb),我想设置亮度以确保它是恒定的。我首先检查原始图像的亮度(greyrgb)。然后我将图像转换为 Lab,然后将 L 值设置为 50 (lab50),然后再转换回 rgb (rgb50)。然后我计算生成图像的亮度(greyrgb50),但它不是恒定的——它实际上看起来更糟。

import numpy as np
from skimage import color
import matplotlib.pyplot as plt

rgb = np.loadtxt("my_image.txt").reshape((512,512,4))
greyrgb = color.rgb2gray(rgb)

lab = color.rgb2lab(rgb)
lab50 = lab
lab50[:,:,0] = 50
rgb50 = color.lab2rgb(lab50)
greyrgb50 = color.rgb2gray(rgb50)

我发现当我将亮度设置为不同的值时,生成的 rgb 图像的亮度仍然略有不同。我是否错误地设置了亮度,或者我是否错误地计算了最终 rgb 图像的亮度?在此处输入图像描述

4

1 回答 1

0

您正在尝试创建色域外的颜色。颜色,可以写成数字,但不能存在于现实生活或其他颜色空间中。例如,纯红色的最大亮度不能超过 0.3,纯蓝色的最大亮度不能超过 0.1,绿色或多或少很好,但仍然不能超过 0.6——因此你有较暗的区域,其中只有一种颜色 ( r,g,b) 存在,因为它无法在 RGB 颜色空间中正确表示。

于 2019-10-18T14:43:41.657 回答