我正在做的是通过量化减少图像中的颜色,但是我需要转换为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]
答案 0 :(得分:1)
如果要将任何浮点数组转换为字节数组(8位无符号整数,从0到255),您可以选择一些选项。我更喜欢更普遍的转换是:
bytearray = (floatarray*255).astype('uint8')
如果您有任何正浮点数组,每个通道的像素值在0.0和1.0之间变化,这应该可以工作。如果您有任意正值,则可以先floatarray /= floatarray.max()
来标准化值。
希望这有帮助!