問題タブ [dithering]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
image-processing - ディザリング(画像)-どの程度正確に機能しますか?
画像のディザリングは次のように機能すると私は考えていますか?
個々のピクセル(x)で構成される2x2の画像ブロックがあります。
次の値で画像をディザリングしたいと思います。
したがって、2x2ブロックは次のように表示されます。
これは正しいです?もしそうなら、私はディザリングされたピクセルレイアウトを正しく示しましたか?
それとも私は完全に間違っていますか?もしそうなら、誰かが親切に私を教えてくれますか(理想的には例を挙げて)?
私が使用することを選択したサンプルサイズは小さいことを認識していますが、それは単に説明のためでした。
どうもありがとう。
android - カスタム グラデーション アクションバーの背景、うまく表示されない、ディザが必要
Android 4.0 では、アクションバーの背景として線形の背景 (xml 形状) を使用しています。うまく表示されず、縞模様に見えます。
スムーズにレンダリングするには?
android - カラーバンディングAndroidソリューション
AndroidアクティビティまたはOpenGlでバンド化された画像に対して可能な解決策は何ですか。
以下の答えを見てください。
それが役に立てば幸い
c++ - ディザリングを使用して 24 ビットのビットマップを 16 ビットに変換するための、最適化された適切な C/C++ アルゴリズムは何ですか?
私は、ディザリングを使用して 24 ビット RGB ビットマップを 16 ビット (RGB565) ビットマップに変換する、最適化された (つまり、迅速な) アルゴリズムを探していました。ディザリングの適用方法を実際に制御できる C/C++ の何かを探しています。GDI+ はいくつかのメソッドを提供しているようですが、それらがディザリングされているかどうかはわかりません。また、ディザリングを行う場合、どのようなメカニズムを使用していますか (Floyd-Steinberg?)
ディザリングによるビットマップの色深度変換の良い例はありますか?
javascript - JavaScript でのモノクロ ディザリング (Bayer、Atkinson、Floyd-Steinberg)
HTML5 でウェブカメラ フィルターを使用しています。その古い学校の Mac の感覚のためにかなりうまく機能するAtkinson ディザを手に入れました。
今、私は 1989 年のゲームボーイの感覚のためにベイヤー順ディザリング オプションを作ろうとしています。
アルゴリズムについて調べましたが、この疑似コードを JavaScript に変換する際に問題が発生しました。
AS3、PHP、または JS の例はありますか? で何が起こっているのか説明していただけますthreshold_map_4x4[x mod 4][y mod 4]か?
( Meemoo Gameboy GIFerizerで作成)
理解した。ウィキペディアでは、「たとえば、モノクロ レンダリングでは、ピクセルの値 (0 ~ 9 の範囲にスケーリング) がマトリックスの対応するセルの数値よりも小さい場合は、そのピクセルを黒でプロットし、そうでない場合は白でプロットします。 ." js では、現在のピクセル (0 ~ 255) とマップの値 (15 ~ 240) を平均し、それをしきい値 (通常は 129) と比較することで、良い結果が得られました。
これは、さまざまなアルゴリズムを使用したモノクロ関数全体です。
最適化のヒントをいただければ幸いです。
image-processing - 順序付けられたディザリングの実装 (24 ビット RGB からチャネルごとに 3 ビット RGB)
私は画像編集プログラムを書いていますが、任意の 24 ビット RGB 画像 (CoreGraphics などでロードするように注意しました) を 3 ビット カラー チャネルの画像にディザリングして表示する機能が必要です。マトリックスなどを設定しましたが、画像に適用される単純なパターン以外に、以下のコードから結果が得られません。
find_closest_palette_colourテストのために今すぐ元の色を返す以外に何もしないことに注意してください。
ウィキペディアからサンプルの疑似コードを実装しようとしていますが、今のところ何も得られません。
これを修正する方法について手がかりを得た人はいますか?
python - PIL - ディザリングが望ましいが、カラー パレットを制限すると問題が発生する
私はPythonが初めてで、Arduinoプロジェクトに必要な解析タスクを実行するためにPILを使用しようとしています。この質問はImage.convert()、カラー パレット、ディザリングなどの方法とオプションに関するものです。
一度に 16 色しか画像を表示できないハードウェアがあります (ただし、RGB トリプレットを指定できます)。したがって、任意のトゥルーカラー PNG 画像を取得し、それを表す「最適な」16 色パレットを選択し、その画像を 16 色のみを含むパレット化されたものに変換するタスクを自動化したいと考えています。
ディザリングを使いたい。問題は、image.convert()メソッドが少しファンキーに動作しているように見えることです。その引数は完全に文書化されていないため( Image.convert() の PIL ドキュメント)、それが私のせいなのか、メソッドにバグがあるのか わかりません。
私のコードの簡単なバージョンは次のとおりです。
私が行ったいくつかの検索に基づいて (例: How to reduce color palette with PIL )、この方法は私が望むことを行うべきだと思いますが、うまくいきません。画像をディザリングしますが、16 色を超える画像が生成されます。
念のために、「ディザ」引数を削除しました。同じ出力。
「dither=1」引数を再度追加し、Image.ADAPTIVE 引数 (上記のリンクに示されているように) を投入して、何が起こったかを確認しました。これにより、16 色を含むイメージが作成されましたが、ディザリングはありません。
ここで何か不足していますか?PIL はバグがありますか? 私が思いついた解決策は2つのステップを実行することでしたが、それはずさんで不必要なようです. これを正しく行う方法を理解したい :-) 完全を期すために、正しい結果が得られるコードのバージョンを次に示しますが、それはずさんな方法で行われます。(最初のステップでは 16 色以上のディザリングされたイメージが生成され、2 番目のステップでは 16 色のみを含むイメージが生成されます。)
ありがとう!
javascript - 256色へのディザリング
HTML5キャンバスのディザ画像を毎回256色またはそれに近い色に注文しようとしています。テスト ページで確認できるように、ディザ アルゴリズムが動作しています(ブラウザ コンソールでカラー カウントを確認してください)。
しかし、さまざまな画像に最適な深度としきい値のマップを選択または生成する方法を理解するのに苦労しています。結果は、元の画像の色数によって大きく異なります。
これまでのところ、2x2、3x3、4x4、8x8 マップ用のこれらの関数の 1 つがあります。
java - ErrorDiffusionDescriptorのカラーモデルのピクセルサイズを制御するにはどうすればよいですか?
ダイレクトカラーモデル画像をビット調のインデックス付き画像(1ピクセルあたり1ビット)に変換し、インデックス付き画像をBMPとして保存しようとしています。
Java Advanced Imaging APIホームページに記載されているように:
エンコードされた出力のビット深度は、ソース画像のビット深度によって決まります。
のソースコードをBMPImageWriter見ると、このメカニズムはColorModel#getPixelSize()の戻り値です。
ウィキメディアコモンズの画像の縮小コピーを使用して、最初に色の量子化を実行してカラールックアップテーブルを取得し、次に誤差拡散を実行してフロイド-スタインバーグディザリングを適用します。
問題は、image.getColorModel().getPixelSize()8を返すため、画像が8bppビットマップとして保存されることです。

この画像のサイズは167KiBです。
カラーモデルを誤差拡散に渡す1つの方法は、JAI.KEY_IMAGE_LAYOUTレンダリングヒントを設定することです。
image.getColorModel().getPixelSize()現在は1を返しますが、結果の画像は大幅に変更されます。

ただし、この画像のサイズは21 KiBで、MSペイントを使用してサンプル画像をモノクロビットマップに変換した場合とほぼ同じです。したがって、JAIBMPImageWriterは正しいエンコーディングを使用しているように見えますが、2番目の画像をよく見ると、隣接するピクセルの列は8ピクセル離れています。実際、最初の画像を見ることができます。最初の画像のピクセルの各列のみが8列のピクセルに展開されます。
これはJAIのバグですか?これらの8幅のピクセル列を単一列のピクセルに折りたたむためにできることはありますか?
algorithm - 24 bpp ディスプレイで 30 bpp 以上のグラフィックスを最適に表示するには?
通常の 24 bpp ディスプレイでチャネルあたり 8 ビットを超えるグラフィックスを最も忠実に表示するにはどうすればよいでしょうか?
