2009-06-30 15 views
14

PILイメージのカラーパレットをどのように縮小するのかよくわかりません。私は画像のパレットを、その画像にある5つの顕著な色に縮小したいと思います。私の全体的な目標は、基本的なカラーサンプリングを行うことです。PILでカラーパレットを減らす方法

答えて

2

あなたはposterizeより洗練された何かをしたいと思っています。あなたが言っているように「サンプリング」は、画像の最も一般的な5色がお互いに似ている可能性があるので、いくらかの精巧さを取ります。おそらくhistogramの5つの最も離れたピークを見てみましょう。

24

は、単に文書化されていない色の引数を使用します。

result = image.convert('P', palette=Image.ADAPTIVE, colors=5) 

を私は

+0

ディザリングを避けるためにImage.ADAPTIVEを使用していることは素晴らしいです、ありがとうございます。私はいつもPILのドキュメントを嫌ってきました。どのようにそれを元に戻しますか? 'image.convert(" RGB "、palette = Image.ADAPTIVE、colors = 5)'または何か他に? – Cosine

+1

これは[im.quantize](http://effbot.org/imagingbook/image.htm)に記載されています。 – unutbu

+2

@unutbu、 'im.quantize'は推奨されていません。 –

関連する問題