PythonPillow-画像をぼかす

画像のぼかしは、画像にフィルタを適用して画像のノイズレベルを下げることで実行できます。画像のぼかしは、画像処理の重要な側面の1つです。

ザ・ ImageFilter classPillowライブラリには、いくつかの標準的な画像フィルタが用意されています。画像フィルターを呼び出すことにより、画像に適用できます。filter() method ImageFilterクラスで定義されている必要なフィルタータイプを持つImageオブジェクトの。

画像をぼかすために使用されるさまざまな手法がありますが、以下で説明する手法について説明します。

  • 単純なぼかし

  • ボックスブラー

  • ガウスぼかし

これら3つの手法はすべて、「Image.filter()」メソッドを使用してフィルターを画像に適用します。

単純なぼかし

特定のカーネルまたは畳み込み行列を介して指定された画像にぼかし効果を適用します。

構文

filter(ImageFilter.BLUR)

#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')

上記の例を実行すると、2つの標準PNG表示ユーティリティウィンドウ(この場合はウィンドウ)が生成されます。 Photos アプリ)。

Original image

Blurred image

ボックスブラー

このフィルターでは、パラメーターとして「半径」を使用します。半径はブラー値に正比例します。

構文

ImageFilter.BoxBlur(radius)

どこ、

  • Radius −一方向のボックスのサイズ。

  • Radius 0 −ぼやけがなく、同じ画像を返すことを意味します。

  • RRadius 1 &minnus; 各方向に1ピクセル、つまり合計9ピクセルを取ります。

#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')

出力

上記の例を実行すると、2つの標準PNG表示ユーティリティウィンドウ(この場合はwindows Photosアプリ)が生成されます。

Original image

Blurred image

ガウスぼかし

このフィルターもパラメーター半径を使用し、アルゴリズムを変更してボックスブラーと同じ機能を果たします。要するに、半径の値を変更すると、異なる強度の「ガウスぼかし」画像が生成されます。

構文

ImageFilter.GaussianBlur(radius=2)

どこ、

  • 半径–ぼかし半径

#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')

出力

上記の例を実行すると、2つの標準PNG表示ユーティリティウィンドウ(この場合はウィンドウ)が生成されます。 Photos アプリ)。

Original image

Blurred image