在 skimage 中设置图像的亮度不会 return 恒定亮度

Setting the luminance of an image in skimage does not return constant luminance

我有一个 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 图像的亮度?

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

正确表示