2020年4月15日水曜日

【Pillow】画像の鮮やかさ・コントラスト・明るさ・シャープネス調整

 画像処理ライブラリPillowのImageEnhanceモジュールを使うことで画像の鮮やかさ(Color)、コントラスト(Contrast)、明るさ(Brightness)、シャープネス(Sharpness)が変更できる。

Pillow(PIL)を使うためにはインポートが必要。PIL.ImageEnhanceモジュールは通常以下の形式でインポートされる。

from PIL import ImageEnhance

 また例に用いる元画像'image.jpg'は以下(フリー写真素材ぱくたそより)




1. 鮮やかさの調整(ImageEnhance.Color)

 画像imageに対してImageEnhance.Colorを適用したenhancerオブジェクトを生成し、enhancerオブジェクトに対してenhanceを適用する。引数factorは強調の度合いを表し1.0が元画像と同じ、1.0未満は強調を弱め1.0より大きい場合は強調を強める。
書式は以下の通り。

enhancer = ImageEnhance.Color(image)  
enhancer.enhance(factor)

 画像に対してfactor = 0.5で処理した場合とfactor = 1.5で処理した場合。
元画像のファイル名部分'image.jpg'は実際の画像のパスを記述する。

factor = 0.5

from PIL import Image, ImageEnhance

# 元画像の読み出し
im = Image.open('image.jpg')  
# enhancerオブジェクト生成
enhancer = ImageEnhance.Color(im)  
# enhancerオブジェクトの強調
im_enhance = enhancer.enhance(0.5)
# ファイルの保存
im_enhance.save('image_enhance.jpg', quality=95)  

実行結果




factor = 1.5

from PIL import Image, ImageEnhance

# 元画像の読み出し
im = Image.open('image.jpg')  
# enhancerオブジェクト生成
enhancer = ImageEnhance.Color(im)  
# enhancerオブジェクトの強調
im_enhance = enhancer.enhance(1.5)
# ファイルの保存
im_enhance.save('image_enhance.jpg', quality=95)  

実行結果




2. コントラストの調整(ImageEnhance.Contrast)

 画像imageに対してImageEnhance.Contrastを適用したenhancerオブジェクトを生成し、enhancerオブジェクトに対してenhanceを適用する。引数factorは強調の度合いを表し1.0が元画像と同じ、1.0未満は強調を弱め1.0より大きい場合は強調を強める。
書式は以下の通り。

enhancer = ImageEnhance.Contrast(image)  
enhancer.enhance(factor)

 画像に対してfactor = 0.5で処理した場合とfactor = 1.5で処理した場合。
元画像のファイル名部分'image.jpg'は実際の画像のパスを記述する。

factor = 0.5

from PIL import Image, ImageEnhance

# 元画像の読み出し
im = Image.open('image.jpg')  
# enhancerオブジェクト生成
enhancer = ImageEnhance.Contrast(im)  
# enhancerオブジェクトの強調
im_enhance = enhancer.enhance(0.5)
# ファイルの保存
im_enhance.save('image_enhance.jpg', quality=95)  

実行結果




factor = 1.5

from PIL import Image, ImageEnhance

# 元画像の読み出し
im = Image.open('image.jpg')  
# enhancerオブジェクト生成
enhancer = ImageEnhance.Contrast(im)  
# enhancerオブジェクトの強調
im_enhance = enhancer.enhance(1.5)
# ファイルの保存
im_enhance.save('image_enhance.jpg', quality=95)  

実行結果




3. 明るさの調整(ImageEnhance.Brightness)

 画像imageに対してImageEnhance.Brightnessを適用したenhancerオブジェクトを生成し、enhancerオブジェクトに対してenhanceを適用する。引数factorは強調の度合いを表し1.0が元画像と同じ、1.0未満は強調を弱め1.0より大きい場合は強調を強める。
書式は以下の通り。

enhancer = ImageEnhance.Brightness(image)  
enhancer.enhance(factor)

 画像に対してfactor = 0.5で処理した場合とfactor = 1.5で処理した場合。
元画像のファイル名部分'image.jpg'は実際の画像のパスを記述する。

factor = 0.5

from PIL import Image, ImageEnhance

# 元画像の読み出し
im = Image.open('image.jpg')  
# enhancerオブジェクト生成
enhancer = ImageEnhance.Brightness(im)  
# enhancerオブジェクトの強調
im_enhance = enhancer.enhance(0.5)
# ファイルの保存
im_enhance.save('image_enhance.jpg', quality=95)  

実行結果




factor = 1.5

from PIL import Image, ImageEnhance
# 元画像の読み出し
im = Image.open('image.jpg')  
# enhancerオブジェクト生成
enhancer = ImageEnhance.Brightness(im)  
# enhancerオブジェクトの強調
im_enhance = enhancer.enhance(1.5)
# ファイルの保存
im_enhance.save('image_enhance.jpg', quality=95)  

実行結果




4. シャープネスの調整(ImageEnhance.Sharpness)

 画像imageに対してImageEnhance.Sharpnessを適用したenhancerオブジェクトを生成し、enhancerオブジェクトに対してenhanceを適用する。引数factorは強調の度合いを表し1.0が元画像と同じ、1.0未満は強調を弱め1.0より大きい場合は強調を強める。
書式は以下の通り。

enhancer = ImageEnhance.Sharpness(image)  
enhancer.enhance(factor)

 画像に対してfactor = 0.5で処理した場合とfactor = 1.5で処理した場合。
元画像のファイル名部分'image.jpg'は実際の画像のパスを記述する。

factor = 0.5

from PIL import Image, ImageEnhance

# 元画像の読み出し
im = Image.open('image.jpg')  
# enhancerオブジェクト生成
enhancer = ImageEnhance.Sharpness(im)  
# enhancerオブジェクトの強調
im_enhance = enhancer.enhance(0.5)
# ファイルの保存
im_enhance.save('image_enhance.jpg', quality=95)  

実行結果



factor = 1.5

from PIL import Image, ImageEnhance

# 元画像の読み出し
im = Image.open('image.jpg')  
# enhancerオブジェクト生成
enhancer = ImageEnhance.Sharpness(im)  
# enhancerオブジェクトの強調
im_enhance = enhancer.enhance(1.5)
# ファイルの保存
im_enhance.save('image_enhance.jpg', quality=95)  

実行結果




5. リファレンス

Pillow (PIL Fork) > ImageEnhance Module

使用バージョン:Python 3.7.0 / Pillow 7.1.2

0 件のコメント:

コメントを投稿