Cuscino Python - Sfoca un'immagine

È possibile sfocare un'immagine riducendo il livello di disturbo nell'immagine applicando un filtro a un'immagine. La sfocatura dell'immagine è uno degli aspetti importanti dell'elaborazione delle immagini.

Il ImageFilter classnella libreria Pillow fornisce diversi filtri immagine standard. I filtri immagine possono essere applicati a un'immagine chiamando il filefilter() method dell'oggetto Image con il tipo di filtro richiesto come definito nella classe ImageFilter.

Esistono varie tecniche utilizzate per sfocare le immagini e discuteremo le tecniche sotto menzionate.

  • Sfocatura semplice

  • Sfocatura casella

  • sfocatura gaussiana

Tutte e tre queste tecniche useranno il metodo "Image.filter ()" per applicare il filtro alle immagini.

Sfocatura semplice

Applica un effetto di sfocatura all'immagine come specificato tramite un kernel specifico o una matrice di convoluzione.

Sintassi

filter(ImageFilter.BLUR)

Esempio

#Import required Image library
from PIL import Image, ImageFilter

#Open existing image
OriImage = Image.open('images/boy.jpg')
OriImage.show()

blurImage = OriImage.filter(ImageFilter.BLUR)
blurImage.show()
#Save blurImage
blurImage.save('images/simBlurImage.jpg')

Durante l'esecuzione, l'esempio precedente genera le due finestre di utilità di visualizzazione PNG standard (in questo caso windows Photos app).

Original image

Blurred image

Sfocatura casella

In questo filtro, usiamo "raggio" come parametro. Il raggio è direttamente proporzionale al valore di sfocatura.

Sintassi

ImageFilter.BoxBlur(radius)

Dove,

  • Radius - Dimensioni della scatola in una direzione.

  • Radius 0 - significa nessuna sfocatura e restituisce la stessa immagine.

  • RRadius 1 & minnus; richiede 1 pixel in ciascuna direzione, ovvero 9 pixel in totale.

Esempio

#Import required Image library
from PIL import Image,
 
#Open existing image
OriImage = Image.open('images/boy.jpg')
OriImage.show()

#Applying BoxBlur filter
boxImage = OriImage.filter(ImageFilter.BoxBlur(5))
boxImage.show()

#Save Boxblur image
boxImage.save('images/boxblur.jpg')

Produzione

Durante l'esecuzione, l'esempio sopra genera le due finestre di utilità di visualizzazione PNG standard (in questo caso l'app Foto di Windows).

Original image

Blurred image

Sfocatura gaussiana

Questo filtro utilizza anche il raggio del parametro e svolge lo stesso lavoro della sfocatura del riquadro con alcune modifiche algoritmiche. In breve, cambiando il valore del raggio, si generano diverse intensità di immagini "Gaussianblur".

Sintassi

ImageFilter.GaussianBlur(radius=2)

Dove,

  • Raggio - Raggio di sfocatura

Esempio

#Import required Image library
from PIL import Image, ImageFilter

#Open existing image
OriImage = Image.open('images/boy.jpg')
OriImage.show()

#Applying GaussianBlur filter
gaussImage = OriImage.filter(ImageFilter.GaussianBlur(5))
gaussImage.show()

#Save Gaussian Blur Image
gaussImage.save('images/gaussian_blur.jpg')

Produzione

Durante l'esecuzione, l'esempio precedente genera le due finestre di utilità di visualizzazione PNG standard (in questo caso windows Photos app).

Original image

Blurred image