0

私がやっていることは、量子化によって画像の色を減らすことですが、フロートを使用する代わりに、RGB に変換する必要があります (例: array(255, 255, 255))。同様の質問を見つけましたが、簡単で直接的な解決策ではありません。

戻るclusteredと、float の配列が生成されます。float を 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

浮動小数点数の配列をバイト配列 (0 ~ 255 の 8 ビット符号なし整数) に変換する場合は、いくつかのオプションがあります。より一般的な変換に私が好むものはこれです:

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

これは、各チャンネルのピクセル値が 0.0 から 1.0 の間で変化する正のフロートの配列がある場合に機能します。任意の正の値がある場合は、floatarray /= floatarray.max()最初に値を正規化することができます。

お役に立てれば!

于 2013-01-30T00:48:35.553 に答える