0

シルクスクリーン印刷用の画像で使用できる無地の色を数えたいと思います。ティースプリングのように、デザインごとに最大 10 色に制限します

javascript ( colorthief ) と imagemagickを使用して、固有の色を数えるための多くの手法を試しました。ただし、シェーディングまたはティントに存在するすべての色も考慮されるため、結果はこの目的には適していません。

ここに画像の説明を入力

上の画像の例、colorthief は 9 つの固有の色を返します。しかし、制限を100に設定すると、以下のように返されました。

var palette = colorThief.getPalette(image, 100);

ここに画像の説明を入力

では、デザインの色が 10 色未満かどうかを検出する方法を知りたいですか?

4

1 に答える 1

0

あなたの質問からは、teespring や ColorThief の機能が好きか嫌いか、何が問題なのか、10 色が必要なときになぜ 100 色を要求するのか、100 色が間違っているのか正しいのかわかりません.. . ですから、色を取得する方法を試して提案するだけで、それらが好きかどうかを確認できます。他のツールも使用できるので、OSX、Linux、および Windows で利用できる ImageMagick を選択します。

したがって、イメージから始めて、コマンド ラインで ImageMagick に指示し、10 個の最適な色のアイデアを選択してから、それらの色だけのスウォッチを作成し、10 ピクセル x 1 ピクセルから 500 ピクセルにサイズを変更することができます。あなたはそれを見ることができます:

convert motor.png -colors 10 -unique-colors -scale 500x swatch.png

ここに画像の説明を入力

または、次のように ImageMagick を使用して YIQ 色空間で量子化することもできます。

convert motor.png -quantize YIQ -colors 10 -unique-colors -scale 500x swatch.png

ここに画像の説明を入力

または、色選択アルゴリズムで彩度の変化を無視して色を選択する場合は、HSL 色空間に移動して彩度を 50% に固定し、色相と明度に影響を与えないようにしてから、RGB 色空間に戻って上記のように色を選択します。しかし、今では彩度が固定されています:

convert motor.png -colorspace hsl -channel G -fx 0.5 +channel -colorspace RGB -colors 10 -unique-colors -scale 500x swatch.png

ここに画像の説明を入力

于 2016-02-11T09:41:46.740 に答える