cngを使用してpng画像ファイルで最も一般的な色を取得する必要があります。これは、イメージに含まれる同様の色のテキストを描画できるようにするためです。PNGで最も使用される色を取得
答えて
多分あなたのためにそれを行うライブラリがありますが、そうでない場合は、すべてのピクセルを循環させて、出現回数で見つけたすべての色のマップを作成し、最後にそれが最も使用されています。
colour histogramを使用して、RGBまたはHSV(色空間に応じて)の値をカテゴリにサンプリングすることができます。しかし、ほとんどの色を実際の値で識別したい場合は、各色の出現を別々に数えなければなりません。全ての画素を
SortedDictionary<Color,int>
とループ:あなたは、実際のピクセル値を見ている場合
は、私がソートされた辞書を使用すると思います。ピクセルをループする方法がわからない場合は、Bitmap.LockBitsをご覧ください。あなたの目的のために、GetPixel
が遅すぎるでしょう。
編集:
私はソートについて100%確信していません。私はCodeInChaosに同意します - まっすぐな辞書はとにかく高速になりそうです。あなたは、最も一般的な価値を得るために、辞書を一回ループする必要があります。
辞書の代わりにSortedDictionaryを使用するのはなぜですか?ソートは、Comparerを手動で提供せずにColor構造体でも機能しますか?また、Dictinaryはおそらく高速です。なぜなら、バイナリ検索の代わりにハッシュテーブルルックアップを行うだけでよいからです。 – CodesInChaos
私はもともとDictionaryをタイプしていましたが、色が自動的に並べ替えるとすばらしいと思っていました。これで、ソートはうまくいかないかもしれませんが、各色のカウントが得られます。速度についての良い点、しかし。私はそれを編集します。 –
ヒストグラムアルゴリズムで各色を数えることができますが、それはおそらくではなく、です。非常に似ている色は一緒に数える必要があります。
Octree Color Quantizationを使用することをお勧めします。Octree Color Quantizationは、自動的に色の数を減らして同様の色を単一のバケットにグループ化します。アルゴリズムの説明:http://www.cubic.org/docs/octree.htm
このアドバイスは24ビットPNGのみです。 8ビットPNGの場合は、すでにカラーグループ化を行うパレットがあります。 256値のテーブルを作成し、遭遇したときに各パレットインデックスの数をカウントするだけで済みます。
- 1. C#linq、コレクションで最も頻繁に使用されるアイテムを取得する
- 2. OpenGLでPNGテクスチャを使用する最も簡単な方法
- 3. 画像内で最も使用されている単色を特定する
- 4. pngからsvgを取得する最も良い方法は何ですか?
- 5. ピクセルの色を最も速く取得できますか?
- 6. laravelで最も投票されている返信を取得
- 7. Pixels + OrderBy最も頻繁な色を取得
- 8. OpenCVを使用して最も正確な画像を取得
- 9. Three.jsを使用して表示されるBlenderのインポートされたメッシュで色を取得する問題
- 10. C#のバイト配列で最も使用されるバイト配列を取得しますか?
- 11. Python - アルファベット順に最初に現れる単語が返される場合は、最も頻繁に使用される単語を文で取得します。
- 12. WMIを使用してMSMQで最も古いメッセージを取得する方法.. ..
- 13. サイト内の「最も訪問された」リンク/ページを取得
- 14. Google検索で使用されるパラメータはもう取得できますか?
- 15. mongodbで最もよく使われているクエリを取得する
- 16. QTPでCSSを使用して背景色を取得する
- 17. VB.netの透明なPNGがオーバーレイされています..フォームの背景色を取得する
- 18. NW.JSのjavascriptを使用して最も高い番号で指定されたdirファイルを取得します
- 19. attr()で最も近い()を取得
- 20. ファイル内で最も使用されている文字列
- 21. テーブルのPHPで最も頻繁に使用される値
- 22. 春のMVCプロジェクトで最も使用されているタグライブラリ
- 23. vbaを使用してExcelで使用される最後の列を取得する方法
- 24. シェアポイントサイトで使用されている用語セット名を取得
- 25. Pythonで.jsp生成PNGを取得
- 26. PHPを使用して最後に挿入された行を取得する
- 27. javascriptを使用して最も近いサブミットボタンを取得するには
- 28. テーブルで最も反復された数値を持つ名前を取得
- 29. javascriptを使用して、指定されたIDを持つ最も近い要素を取得します
- 30. png画像が灰色の背景で表示されます。
PNGに白いピクセルしか含まれていない場合は、テキストを白で描画しますか?あなたはそれがあなたが望んでいると確信していますか? –
@Doc Brownどこで彼はイメージを描いていたと言いましたか? – Jess
平均色のようなものではなく、最も一般的な色が本当に欲しいですか?おそらく光学的に共通の色は多くのわずかに異なる色から構成されているので、多くの異なる色があり、最も一般的な色は画像の小さな部分のみを満たすことがあります。おそらく、ヒストグラムを作成する前に、カラーチャネルごとにわずかな値に色を分別する必要があります。 – CodesInChaos