問題タブ [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.
opengl-es - グーローシェーディングされた頂点カラーのポリゴンをディザリングして、バンディングを削除します
低解像度の組み込みデバイスでOpenGLESを使用しています。
レンダリングされたシーンの背景として機能する大きなポリゴンに、頂点カラーリングを使用して垂直方向のカラーグラデーションを適用しました。カラーグラデーションではっきりと見えるバンディングアーティファクトを見ることができます。
私の主な経験は、ソフトウェアレンダラーを使用することです。ソフトウェアレンダラーでは、マッハバンドやその他のバンディングアーティファクトをディザリングするのが一般的です。これは、フレームをレンダリングする量子化ステップでよく行われます。ここでは、浮動小数点の高精度の色表現が低精度の出力に変換されます(通常は整数成分を使用)。最終的な整数成分をランダムに上下に丸めてディザリングを実現し、画像にごくわずかなノイズを挿入して、目をだまして連続体を見て色をスムーズにブレンドします。
私の質問は、OpenGLESを使用してこれを達成できるかどうかです。この種のディザリングはOpenGLパイプラインの一部ですか、それとも頂点の色付けをスキップしてグラデーションをテクスチャにレンダリングし、それに少しノイズを適用する必要がありますか?
c - C で最速のディザリング/ハーフトーン ライブラリ
レンダリングされた Web ページをクライアントに提供するカスタム シンクライアント サーバーを開発しています。サーバーは、HTML レンダリング エンジンを提供する Webkit を使用して、マルチコア Linux ボックスで実行されます。
唯一の問題は、クライアントの表示が 4 ビット (16 色) のグレースケール パレットに制限されていることです。私は現在、LibGraphicsMagick を使用して画像をディザリング (RGB->4 ビット グレースケール) していますが、これはサーバー パフォーマンスの明らかなボトルネックです。プロファイリングでは、GraphicsMagick ディザリング関数の実行に 70% 以上の時間が費やされていることが示されています。
優れた高性能ソリューションを求めて、stackoverflow と Interwebs を調査しましたが、さまざまな画像操作ライブラリとディザリング ソリューションのベンチマークを誰も行っていないようです。
私はもっと喜んで見つけます:
- RGB イメージの 4 ビット グレースケールへのディザリング / ハーフトーン化 / 量子化に関して、最もパフォーマンスの高いライブラリは何ですか。
- 特殊なディザリング ライブラリやパブリック ドメインのコード スニペットを教えてもらえますか?
- 高性能に関してグラフィックスを操作するためにどのライブラリを好みますか?
C 言語ライブラリが優先されます。
python - PIL および TrueType フォントを使用したテキストのディザリング
次のコードを検討してください: from PIL import Image、ImageDraw、ImageFont
ここに入力ファイルと出力ファイルがあります これは入力です
入力 http://img16.imageshack.us/img16/8229/73936270.png
これが出力です
出力 http://img94.imageshack.us/img94/531/outj.png
ご覧のとおり、出力画像にはテキストの周囲に赤みを帯びたノイズが多数含まれています。このディザリングをなくすにはどうすればよいですか?
android - Android でキャンバスにスムーズ/ディザ グラデーションを描画する方法
いくつかの回答では、GradientDrawable.setDither(true) を使用して Android で滑らかなグラデーションを描画することが言及されています。それは私のコードには影響しません。ライブ壁紙で見栄えの良いグラデーションを得るために何を変更する必要があるか考えていますか?
wpf - WPF v4での画像サイズ変更エイリアシング(v3.5ではない)
.NETv3.5で正常に機能している画像サイズ変更パイプラインにWPFを使用しています。プロジェクトをターゲットv4.0にアップグレードしたところ、サイズ変更されたすべてのイメージのエイリアスが大きくなりました。画像パイプラインコードは変更されていません。
デフォルトのWPF設定はv3.5とv4.0の間で変更されましたか?
サイズ変更されたビットマップイメージのディザリングをWPFで制御するにはどうすればよいですか?
、、、、、を使用しBitmapImage
ていますがDrawingVisual
、ディザリングに関連するプロパティが表示されません。GDI +にはたくさんの設定があったので、何かが足りないと思います。DrawingContext
RenderTargetBitmap
BitmapEncoder
BitmapFrame
更新:私が見たすべてのソリューションは、WindowオブジェクトまたはXAML環境を想定しているようです。これは、UIのないWindowsサービス内で実行されます。この設定にプログラムで影響を与える方法が必要です。
GDI +には、サービスやWebアプリなどの長時間実行されるプロセスでメモリリークが発生するため、特にGDI+からWPFに切り替えました。
image-processing - ピクセル シェーダーの Floyd–Steinberg ディザリングの代替手段
Floyd-Steinberg ディザリングアルゴリズムはピクセル シェーダーでは実装できないことを私は知っています。そのアルゴリズムは厳密にシーケンシャルであるためです。しかし、視覚的な出力がFloyd-Steinbergアルゴリズムに似ている高度に並列なディザリングアルゴリズムが存在する可能性がありますか?
問題は、ピクセル シェーダー (できれば GLSL) に実装するのに適したディザリング アルゴリズムとは (非常に) Floyd-Steinberg ディザリングに似た出力品質を持つものです。
ところで。マルチパス アルゴリズムは、パスが 2 つ以下になり、それらのパス間の CPU オーバーヘッドが小さくなるまで許可されます。
何か案は ?
編集:
24 ビット カラーから 21 ビット カラーへのディザリングが必要です。
(つまり、8 ビット/チャネルから 7 ビット/チャネルに変換する必要があります。)
EDIT 2
問題をうまく説明できていないかもしれません。だから私は正確な問題を少し拡大しようとします。問題はこれです - この写真
があるとします: 上の写真がありますが、ディザリング アルゴリズムで処理されています:
これは、ディザリングが適切かどうかをテストする手順です:
1. これらの写真を Photoshop で 2レイヤー。
2.レイヤーブレンドモードを「差分」に選択します。
3. レイヤーに対して「表示をマージ」操作を実行して、レイヤーを 1 つだけ取得します。
4. 操作を実行 => イメージ/調整/イコライズ
その後、次のようなイメージを取得する必要があります。
ご覧のとおり、モノトーンの赤色である中央のピクセルはまったくディザリングされていません。また、左右の画像ゾーンのディザリングも少し異なります。このような動作でディザリング アルゴリズムを再構築してみてください。
c# - ベイヤー順ディザリング
数か月前に作成した Paint.net のプラグインを更新しています。これは Simulate Color Depth と呼ばれ、画像の色数を選択した BPP に減らします。長い間ディザリングが含まれていましたが、ディザリングを注文したことはありません。それがあればいいと思ったので、何か役に立つものをインターネットで検索し始めました。疑似コードに書かれている通りにする
しかし、結果が明るすぎるので、wikiページをもう一度チェックすることにしました。すると、しきい値マップの右側に「1/65」があり、両方のエラー拡散を考えさせられました(はい、知っています、変ですね?) 取得した値bayer8x8[x % 8, y % 8]
を 65 で割り、その値をカラー チャネルで乗算しますが、結果が乱雑であるか、またはまだ明るすぎます (覚えているように) が、結果は他の場所で見たようなものではありませんでした。明るすぎる、コントラストが高すぎる、または乱雑で、インターネットを検索しても本当に役立つものは見つかりませんでした。このベイヤーディザリングを正しく機能させる方法を知っている人はいますか?
前もってありがとう、クッキー
c - 2色ディザリング
0
sとsの混合物を含む配列があり1
ます。sとsの数は変わらないという制約の下で、配列内の偶数の位置にできるだけ多く含まれ0
、奇数の位置にできるだけ多く含まれるように、配列の内容を再配置したいと思います。これは、sの数がsの数を超える場合、またはその逆の場合、再配置された配列の最後に、すべてまたはすべてで構成されるブロックが存在することを意味します。アレイを所定の位置に変更して、これを1回のパスで行うにはどうすればよいですか?1
0
1
0
1
0
1
例えば: