0

我正在做的是通过量化减少图像中的颜色,但我需要转换为 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]
4

1 回答 1

1

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

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

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

希望这可以帮助!

于 2013-01-30T00:48:35.553 回答