将Float格式的量化颜色转换为RGB整数

时间:2013-01-30 00:40:52

标签: python colors

我正在做的是通过量化减少图像中的颜色,但是我需要转换为RGB(例如,数组(255,255,255))而不是使用浮点数。我发现了类似的问题,但没有一个直截了当/直接的解决方案。

返回clustered会生成浮点数组。 如何将浮点数转换为RGB等值?

 # Pixel Matrix
pixel = reshape(img,(img.shape[0]*img.shape[1],3))

# Clustering
centroids,_ = kmeans(pixel,8) # six colors will be found

# Quantization
qnt,_ = vq(pixel,centroids)

# Shape Quantization Result
centers_idx = reshape(qnt,(img.shape[0],img.shape[1]))
clustered = centroids[centers_idx]

1 个答案:

答案 0 :(得分:1)

如果要将任何浮点数组转换为字节数组(8位无符号整数,从0到255),您可以选择一些选项。我更喜欢更普遍的转换是:

bytearray = (floatarray*255).astype('uint8')

如果您有任何正浮点数组,每个通道的像素值在0.0和1.0之间变化,这应该可以工作。如果您有任意正值,则可以先floatarray /= floatarray.max()来标准化值。

希望这有帮助!