5

スペース壁紙共有ギャラリーに取り組んでいます。JavaScriptライブラリのcolor-thiefを使用して画像の主要なを取得しましたが、問題があります。ほとんどの壁紙は暗いです。壁紙を検索するときに、ユーザーが#07Fのような青い色を選択した場合、これらの壁紙の主な色は黒に近いため、この色の暗い壁紙は多くありません。

検索に複数の主要な色(たとえば、黒と青)の使用を許可することもできますが、それでは検索がより複雑になります。

画像の主要な色相を取得できるJavaScriptライブラリ(クライアント側で実行する必要があります)はありますか?そうでない場合は、それを行うためのアルゴリズムをどのように実装できるかについて何か考えがありますか?

読んでくれてありがとう :)

4

1 に答える 1

1

これは、Javascriptというよりも設計上の問題です。ドミナントカラーは、常にほとんどのピクセルをカバーするカラーではありません。目を引くのは色です。たとえば、黒の背景にピンクの銀河の写真を誰かに見せた場合、主要な被写体がピンクであるため、支配的な色は黒ではなくピンクになります。したがって、それよりもはるかに複雑なアルゴリズムが必要です。

また、黒と白は技術的には色ではありません。それらは、それぞれ光または極端なハイライト(または光源)がまったくないだけです。したがって、事前定義されたしきい値よりも暗いまたは明るいものはすべて除外します(たとえば、計算で上位と下位の5%を除外します)。

編集:

私自身、実際には、許容誤差を使用して、特定のしきい値を超える最も飽和したピクセルの色(たとえば、ノイズによる誤検知を回避するためにXピクセルカウントを超える)を取得しようとする場合があります。

EDIT2:

L155を変更して、ピクセルの彩度と暗さをテストできる場合があります。この目的のためにRGB->HSB変換を行うライブラリを入手したいと思うかもしれませんが、良いライブラリがあるかどうかはわかりません。

于 2012-12-30T14:53:09.863 に答える