在python中,有没有办法将渐变的RGB值转换为[0,1]范围内的值?

在python中,有没有办法将渐变的RGB值转换为[0,1]范围内的值?,python,matplotlib,Python,Matplotlib,我正在寻找一种在python中将颜色渐变的不同RGB值转换为从0到1的单个值的方法。我目前的方法是将RGB值转换为单个灰度值,然后缩放这些值,但我知道在这个过程中会丢失一些数据信息。所以我想知道你们中是否有人可以建议一种方法,直接将RGB值转换为单个值,然后缩放这些值 我这样做是因为我目前正在培训CNN使用matplotlib生成的彩色图像。使用matshow和颜色栏进行pyplot。我使用的图像有点像这样: 它们是通过将从0到1的值的一维数组转换为Gramian角场生成的 期待任何建议!干杯

我正在寻找一种在python中将颜色渐变的不同RGB值转换为从0到1的单个值的方法。我目前的方法是将RGB值转换为单个灰度值,然后缩放这些值,但我知道在这个过程中会丢失一些数据信息。所以我想知道你们中是否有人可以建议一种方法,直接将RGB值转换为单个值,然后缩放这些值

我这样做是因为我目前正在培训CNN使用matplotlib生成的彩色图像。使用matshow和颜色栏进行pyplot。我使用的图像有点像这样:

它们是通过将从0到1的值的一维数组转换为Gramian角场生成的


期待任何建议!干杯

欢迎来到SO。很酷的问题。如果我理解正确,问题的输入应该是三个值:RGB代码“0”、RGB代码“1”和您尝试映射的项目的RGB代码。对吗?请您提供输入和期望输出的示例好吗?@Roy2012感谢您的回答,并对我在问题中的错误解释表示抱歉!输入是一个包含rgb值的三维numpy数组,更具体地说,形状是(256、256、3),因此对于256x256图片的每个像素,每个R、G和B都有一个值,都在0到255之间。这些RGB值都是pyplot matshow函数生成的渐变的一部分。所需的输出是一个二维numpy数组,其中每个RGB值映射到0到1之间的单个值。希望现在更清楚了!是的。关键是:相同的值意味着不同的东西,这取决于你使用的渐变类型。例如,请参阅本页(这是用于plotly的,但此想法适用于其他软件包)。换句话说,某种形状的绿色在viridis中意味着一件事,在BuGn中意味着另一件事。@AndreaBlengino最初它是一幅256x256的图像,但应用于较小的图像(2x2),例如[[[68 1 84][28 103 141]][[53,183,120][253 231 36]](使用viridis颜色映射和值[[1 2][3 4]生成)。所需的输出大约为[[0.33][0.66 1]]。我希望这是可以理解的!欢迎使用SO。很酷的问题。如果我理解正确,问题的输入应该是三个值:RGB代码“0”、RGB代码“1”和您试图映射的项目的RGB代码。对吗?请提供输入和所需输出的示例?@Roy2012感谢您的响应,并对m表示抱歉问题中的y错误解释!输入是一个包含rgb值的三维numpy数组,更具体地说,形状是(256,256,3),因此,对于256x256图片的每个像素,每个R、G和B都有一个值,都在0到255之间。这些RGB值都是pyplot matshow函数生成的渐变的一部分。所需的输出是一个二维numpy数组,其中每个RGB值都映射到一个0到1之间的值。希望现在更清楚!是的,这是e catch:相同的值意味着不同的东西,这取决于你使用的渐变类型。例如,请参阅本页(这是用于plotly的,但这个想法适用于其他软件包)。换句话说,某种形状的绿色在viridis中意味着一件事,在BuGn中意味着另一件事。@AndreaBlengino最初它是一幅256x256的图像,但应用于较小的图像(2x2),例如[[[68 1 84][28 103 141][[53,183,120][253 231 36]](使用viridis颜色映射和值[[1 2][3 4]]。所需的输出大约为[[0.33][0.66 1]]。我希望这是可以理解的!