前書き
鋭いエッジは、率直に言って、単に危険なので、PNGを入力として、以下に説明する方法を使用して画像をぼかし、それらのとがった鋭いエッジを鈍らせます。
方法
各ピクセルのRGB値を取得するには、次の3つの式を使用します。
ここで、は、隣接する各ピクセルの赤の値の2乗の合計です。の値は、隣接するピクセルの数です(たとえば、コーナーピクセルの値は3で、画像の中心付近のピクセルの値は8です)。
隣接するピクセルとは、すべての方向(左、右、上、下、およびすべての対角線)で元のピクセルから1ピクセル離れたピクセルです。
たとえば、次の3 x 1の画像では:
中央のピクセルのぼやけたRGB値は次のようになります。
ここで、小数出力は最も近い単位に丸められます。結果を単純にフロアリングしないでください。
したがって、中央のピクセルは色(0、221、221)、または:
画像になります:
画像内のすべてのピクセルに対してこのプロセスを繰り返す必要があります。(変更されたピクセルではなく、元のピクセルでこれを行うことに注意してください。基本的に、元のイメージを上書きしないでください。また、新しいぼやけたイメージとは完全に分離してください。)
255を超える値を計算する場合、その値が255であると想定します(つまり、374の値は255に設定されます)。
結果の出力は、個別のPNG画像になります(好きな名前を付けることができます)。
例
スーパーマリオ
元の:
ぼやけた:
チェッカーボード
元の:
ぼやけた:
ポテトチップス
元の
ぼやけた
もうそれほど鮮明ではない
ゴシックアメリカ
元の:
ぼやけた:
大きな画像でぼかしを見るには、ぼかした画像でプログラムを再度実行するのが最善です。
チャレンジ
特定のPNG画像をぼかすための最短コードが優先されます。
画像処理ライブラリ(PILなど)を使用できますが、組み込みのぼかし関数を使用しないでください(Mathematica、私はあなたを見ています)。
注意
@orlpが以下のように言っているように:
記録のために、(私の知る限り)これは標準的なぼかし方法ではありません。この課題は教育資源ではありません。
n
分母に表示されるはずです。