Giriş
Keskin kenarlar, açıkçası, sadece tehlikeli olduğundan giriş olarak bir PNG verildiğinde, görüntüyü aşağıda açıklanan yöntemi kullanarak bulanıklaştırın ve bu keskin kenarları köreltin.
Yöntem
Her pikselin RGB değerini almak için aşağıdaki üç denklemi kullanın:
Burada bitişik piksellerin her birinin kızıl değerlerinin toplamı kare. değeri, bitişik piksellerin sayısıdır (örneğin, köşe pikselinin 3 değeri olurken, görüntünün merkezinin çevresindeki bir piksel 8 değeri).
Bitişik piksel, orijinal pikselden tüm yönlerde (sol, sağ, yukarı, aşağı ve tüm köşegenlerde) 1 piksel uzaklıktaki bir pikseldir.
Örneğin, aşağıdaki 3 x 1 görüntüde:
Orta pikselin bulanık RGB değeri:
burada ondalık çıktılar en yakın birime yuvarlanır. Sonucu basitçe katlamamalısınız.
Bu nedenle, orta piksel renk (0, 221, 221) veya:
Resmin sonucu:
Bu işlemi görüntüdeki her piksel için tekrarlamanız gerekir. (Bunu, değiştirilen piksellerle değil, orijinal piksellerle yaptığınızı unutmayın. orijinal görüntünün üzerine yazmamalısınız ve yeni, bulanık görüntüden tamamen ayrı tutmalısınız ).
255'ten büyük herhangi bir değer hesaplarsanız, değerinin 255 olduğunu varsayalım (yani, 374 değeri 255 olarak ayarlanır).
Ortaya çıkan çıktı ayrı bir PNG görüntüsü olmalıdır (bunu istediğiniz gibi adlandırabilirsiniz).
Örnekler
Süper Mario
Orijinal:
Bulanık:
Dama tahtası
Orijinal:
Bulanık:
Cips
orijinal
Bulanık
Artık çok net değil
Gotik amerikan
Orijinal:
Bulanık:
Daha büyük görüntülerde bulanıklığı görmek için programı bulanık görüntüde tekrar çalıştırmak en iyisidir:
Meydan okuma
Belirli bir PNG görüntüsünü bulanıklaştırmak için en kısa kod kazanır.
Görüntü işleme kitaplıklarını (PIL gibi) kullanabilirsiniz, ancak yerleşik bulanıklaştırma işlevlerini (Mathematica, size bakıyorum) kullanmamalısınız.
Not
@Orlp'nin dediği gibi:
Kayıt için, (bildiklerime göre) bu standart bir bulanıklaştırma yöntemi değildir. Bu zorluk bir eğitim kaynağı değildir.
n
paydada görünmelidir.