Pythonプログラミングで画像処理においてビネット効果フィルターの適用方法について解説します。
目次
1. ビネット効果フィルターとは
ビネット効果フィルターとは、画像の周辺部分を暗くし、中心部分を強調する効果をもたらす画像処理手法です。これによって、被写体に焦点を当てることができます。
2. 必要なライブラリのインストール
Pythonで画像処理を行うためには、以下のライブラリをインストールする必要があります。
インストールは以下のように行います。
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による画像処理でビネット効果フィルターの適用方法について解説しました。具体的なコード例を用いて手軽に実装できることが分かりました。画像処理において様々な効果を試してみて、自分のプロジェクトにぜひ活用してください。