如何在 python 中提取此颜色条图像的 rgb 值?

How to extract rgb values of this colorbar image in python?

Image is attached here

我想制作一个用于附件图像颜色条的颜色图。我可以在 MATLAB 中完成,但是,我似乎无法在 python 中完成。到目前为止,我尝试了下面给出的代码,但没有得到我想要的结果。

import matplotlib.pyplot as plt
from matplotlib.colors import LinearSegmentedColormap
import numpy as np

img = plt.imread('Climat.png')
colors_from_img = img[:, 0, :]
my_cmap = LinearSegmentedColormap.from_list('my_cmap', colors_from_img, N=651)
y = random_sample((100, 100))
imshow(y, cmap=my_cmap);plt.colorbar()

正在寻找您的建议。提前谢谢你。

bicarlsen 给了你正确的方向。将提取颜色的点限制为彩色矩形:

import matplotlib.pyplot as plt
from matplotlib.colors import LinearSegmentedColormap
import numpy as np

img = plt.imread('Climat.png')
colors_from_img = img[80::88, 30, :]
my_cmap = LinearSegmentedColormap.from_list('my_cmap', colors_from_img[::-1], N=len(colors_from_img))
y = np.random.random_sample((100, 100))
plt.imshow(y, cmap=my_cmap)
plt.colorbar()
plt.show()

示例输出:

P.S.: 最初,我想到了一种更通用的方法

colors_from_img = np.unique(img[:, 30, :], axis=0)

是可能的,但由于输入图像是光栅化的,所以在黑线分隔彩色矩形的地方会出现各种混合颜色。