png画像をgifに変換したい。このために、私はそのpngイメージから各ピクセルデータをHTMLキャンバスに再描画して読み込みます。次に、そのpng画像データからアルファチャンネルを削除しました。最後に、そのピクセル配列を256色のパレットに量子化しました。 gifイメージを作成するには、各ピクセルをパレットの最も近い色にマップするようになりました。私は、ピクセルとパレットの各色とのユークリッド距離を比較しました。これは非常に長い時間がかかり、私は非常に品質の悪いgifを得ています。画像の各ピクセルをgifパレットにマップする最適な方法は何ですか?各ピクセルのrgb値を定義済みのパレットにマップする方法は?
0
A
答えて
0
RGBスペースの代わりにHSVカラースペースを使用してください。
チェックアウトこの質問を:HSV-空間で
Calculate distance between colors in HSV space
A「距離」の色を比較する際に、より良いものを、私たちの目の対策「距離」として表しています。色の色相、彩度、および値の各部分に異なる重みを適用することで試してみることができます。 私たちの目には、色認識の場合と同じ明るさ/暗色認識のレセプターが20倍多くあるため、Value部分にわずかに高い重みを付けてみてください。
パフォーマンスパーツについては、各ピクセルは他のピクセルとは独立しているため、色の近似の操作を並列に実行することができます。
最後に:256色はかなり低いので、素晴らしい画像品質は期待しないでください。 16.700.000色をわずか256色に減らしています。そのことを念頭に置いてください。
関連する問題
- 1. OpenCV:各ピクセルのRGBカラーの値を持つRGBイメージを塗りつぶす方法は?
- 2. Visual C#でdataGridViewの定義済みの値を設定する方法は?
- 3. CGImageRefオブジェクトからピクセルのRGB値を取得する方法は?
- 4. Angular @Inputで定義済みの値のみを受け入れる方法
- 5. Python PIL - 白黒ピクセルのRGBピクセル値
- 6. JSON配列を定義済みの型に設定する方法は?
- 7. メソッドReturnTypeと定義済みの型を比較する方法
- 8. 定義済みの値でハッシュマップを設定する(Java)
- 9. LNK2005を解決する方法:既に定義済み
- 10. BufferedImageのJavaのR、G、B値からrgbピクセル値を取得する方法
- 11. Cの生画像から各ピクセルのRGB値を取得する
- 12. 定義済みの値をどのように再定義しますか?
- 13. Webtorrent - .torrentファイルの定義済みURLからストリーミングする方法
- 14. Hibernate:マップ値の列名を定義する方法は?
- 15. #define USE_SQLDB(定義済み(USE_SQLITE)||定義済み(USE_MYSQL))
- 16. 定義済みフォームデータベースのフィールド
- 17. 定義済みパスのget_included_files()
- 18. ソート済みのオブジェクトをマップに挿入する方法
- 19. 定義済みのメソッドの外にあるコンポジットのコンポーネントにアクセスする方法
- 20. Kivy Pythonで定義済みの値でテキストインプットを作成する
- 21. 定義済みのヘッダファイル/ C++の定義を解除する
- 22. 定義済みマップの未定義のプロパティ 'set'を読み取ることができません
- 23. 定義済みの値リストからの文字列のベストマッチは?
- 24. 定義済みのサイズでJFileChooserを開く方法
- 25. 固定の定義済み値を持つHTML GETフォーム
- 26. bashスクリプトでCプログラムを実行し、定義済みの定数の値を与える方法は?
- 27. C#定義済みのプリプロセッサのリストを取得するには?
- 28. Susyグリッドプロジェクトで定義済みのCSSファイルを実行する方法は?
- 29. serverless-1.0.0フレームワーク定義/デプロイ済みAPIのカスタムドメインを追加する方法は?
- 30. 定義済みの割合でパンダでDataFrameを分割する方法は?
私はHSL HSVより優れたL * a * b *色空間を試しましたが、それでも良い結果は得られませんでした。 – gnikesh