Python画像処理:トーンカーブフィルターの適用方法

目次

  1. はじめに
  2. トーンカーブフィルターとは
  3. トーンカーブフィルターの適用方法
    1. Pythonと必要なモジュールのインストール
    2. トーンカーブの作成
    3. 画像にトーンカーブフィルターを適用
  4. コード例
  5. まとめ

1. はじめに

Pythonプログラミングは、画像処理においても非常に有用です。この記事では、トーンカーブフィルターとその適用方法について説明します。

2. トーンカーブフィルターとは

トーンカーブフィルターは、画像の明るさやコントラストを調整するためのツールです。トーンカーブを変更することで、画像の明るさやコントラストを効果的に調節できます。

3. トーンカーブフィルターの適用方法

3.1 Pythonと必要なモジュールのインストール

まず、次のコマンドでPythonと画像処理用のモジュール(Pillow)をインストールしてください。

pip install python
pip install pillow

3.2 トーンカーブの作成

次に、以下のようにしてトーンカーブを定義します。

def create_tone_curve():
    tone_curve = [0] * 256
    for i in range(256):
        tone_curve[i] = int(255 * (i / 255) ** gamma)
    return tone_curve

この関数は、トーンカーブを256段階の輝度値で表現したリストを作成します。ガンマ補正によって線形な変更から非線形な変更まで幅広い変化を表現できます。ガンマ補正の値(gamma)を0.5に設定すると、画像が明るくなりますし、2に設定すると暗くなります。

3.3 画像にトーンカーブフィルターを適用

以下のようにして、先程定義したトーンカーブを画像に適用します。

from PIL import Image, ImageOps

image = Image.open("image.jpg")
gamma = 1.5
tone_curve = create_tone_curve()
image_toned = ImageOps.autocontrast(image, curve=tone_curve)
image_toned.save("image_toned.jpg")

4. コード例

すべてまとめると、次のようなコードになります。

from PIL import Image, ImageOps

def create_tone_curve():
    tone_curve = [0] * 256
    for i in range(256):
        tone_curve[i] = int(255 * (i / 255) ** gamma)
    return tone_curve

image = Image.open("image.jpg")
gamma = 1.5
tone_curve = create_tone_curve()
image_toned = ImageOps.autocontrast(image, curve=tone_curve)
image_toned.save("image_toned.jpg")

5. まとめ

この記事では、Pythonを使用してトーンカーブフィルターを適用する方法を説明しました。これで、画像の明るさやコントラストを自由に調整できるようになりました。お試しください。