Pythonの画像処理:ビネット効果フィルターの適用方法

Pythonプログラミングで画像処理においてビネット効果フィルターの適用方法について解説します。

目次

  1. ビネット効果フィルターとは
  2. 必要なライブラリのインストール
  3. 画像の読み込みと表示
  4. ビネット効果フィルターの実装
  5. 処理後の画像の保存と表示
  6. まとめ

1. ビネット効果フィルターとは

ビネット効果フィルターとは、画像の周辺部分を暗くし、中心部分を強調する効果をもたらす画像処理手法です。これによって、被写体に焦点を当てることができます。

2. 必要なライブラリのインストール

Pythonで画像処理を行うためには、以下のライブラリをインストールする必要があります。

  • OpenCV: 画像処理用のライブラリ
  • NumPy: 数値計算用のライブラリ
  • Matplotlib: グラフ描画用のライブラリ

インストールは以下のように行います。

pip install opencv-python numpy matplotlib

3. 画像の読み込みと表示

まず、画像を読み込み、表示してみましょう。以下のコードで実行できます。

import cv2
import matplotlib.pyplot as plt

# 画像の読み込み
image_path = "input.jpg"
image = cv2.imread(image_path)

# 色の変換と表示
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
plt.imshow(image)
plt.show()

4. ビネット効果フィルターの実装

ビネット効果フィルターを実装するための関数を定義します。

import numpy as np

def apply_vignette_filter(image, intensity=0.6):
    rows, cols = image.shape[:2]

    # マスクの生成
    X_resultant_kernel = cv2.getGaussianKernel(cols, cols * intensity)
    Y_resultant_kernel = cv2.getGaussianKernel(rows, rows * intensity)
    kernel = Y_resultant_kernel * X_resultant_kernel.T

    # マスクを3チャンネルに変換
    mask = cv2.merge([kernel, kernel, kernel])

    # マスクを適用して画像を返す
    return np.clip(image * mask, 0, 255).astype(np.uint8)

5. 処理後の画像の保存と表示

ビネット効果フィルターを適用し、画像を保存して表示します。

# フィルターを適用
filtered_image = apply_vignette_filter(image)

# 画像の保存
output_path = "output.jpg"
cv2.imwrite(output_path, cv2.cvtColor(filtered_image, cv2.COLOR_RGB2BGR))

# 画像の表示
plt.imshow(filtered_image)
plt.show()

6. まとめ

この記事では、Pythonによる画像処理でビネット効果フィルターの適用方法について解説しました。具体的なコード例を用いて手軽に実装できることが分かりました。画像処理において様々な効果を試してみて、自分のプロジェクトにぜひ活用してください。