-1

より具体的には、Android のカメラ画像から色を選択し、それを多数 (100 ~ 200) の他の単色サンプルと比較して、最も近い (おそらく上位 5 つの) 一致を見つける必要があります。

これを行う最も簡単な方法は、画像から選択した色の RGB 値を他の各サンプルの RGB 値と比較することですか? 簡単なサンプル アルゴリズムを提供できる場合は、疑似コードを含めていただければ幸いです...

100 ~ 200 個のカラー サンプルを Android アプリに保存する必要がありますか?それともサーバーに保存し、PHP と SQL を介してアクセスする方がよいでしょうか?

Java、html、css、javascript、jquery、ajax、jason、perl、および xml を使用する必要がある場合は、それらに精通していること。

4

1 に答える 1

0

まず、2 つの RGB カラー間の距離を定義しましょう。1 つの方法は、R バイト間の絶対差を計算し、G バイト間の絶対差に加算し、B バイト間の絶対差に加算することです。

2 つの色のこの距離を計算するのは簡単で、結果として整数が得られます。最適な 5 つの一致を見つけるには、100 個のサンプルを調べて、選択した色とそれぞれの色との距離を計算し、距離に従って結果を並べ替えます。5 つの最小の距離が最適です。

カメラから選択した単一の色に対してこの計算全体を 1 回実行する場合 (たとえば、カメラ画像のすべてのピクセルの色とは対照的に)、パフォーマンスの問題は見られないため、さらに最適化する必要はありません。

アプリ内で 100 個のサンプルを保持するのが、最も速くて簡単です。サーバーで計算を行う必要はありません。サーバーは 1 つですが、デバイスは多数あります。それらを使用してください。サーバーと通信する唯一の理由は、100 個のサンプルが定期的に変更される可能性がある場合です。サンプルが変更された場合に備えてサーバーからサンプルを更新することは、新しく更新されたアプリを Play ストアに公開するよりも少し簡単です。100 個のサンプルを頻繁に変更する予定がない場合は、サーバー ビットを完全にスキップしてください。

于 2013-07-31T00:16:55.970 に答える