目次
- はじめに
- 必要なライブラリのインストール
- 色調補正フィルターとは
- スライダーの作成
- 画像クロップ・リサイズ
- 色調補正フィルターを適用する関数
- 実行結果
- まとめ
- 参考資料
1. はじめに
Pythonプログラミングにおいて、画像処理は重要な分野の一つです。この記事では、「スライダーで色調補正フィルターを適用する方法」について詳しく解説します。
2. 必要なライブラリのインストール
このチュートリアルでは、以下のライブラリを使用します。
- OpenCV
- Pillow
- NumPy
インストールは以下のコマンドで行えます。
pip install opencv-python-headless Pillow numpy
3. 色調補正フィルターとは
色調補正フィルターは、画像の色を変更することで、明るさやコントラスト、彩度を調整することができます。
4. スライダーの作
スライダーは、GUIアプリケーションで簡単に値を変更できるようにするために使用されます。OpenCVを使用して作成することができます。
import cv2 def on_trackbar(val): pass window_name = "Color Correction" cv2.namedWindow(window_name) cv2.createTrackbar("Brightness", window_name, 50, 100, on_trackbar) cv2.createTrackbar("Contrast", window_name, 50, 100, on_trackbar) cv2.createTrackbar("Saturation", window_name, 50, 100, onackbar)
5. 画像クロップ・リサイズ
画像を読み込み、クロップおよびリサイズを行います。
from PIL import Image img = Image.open("example.jpg") width, height = img.size img = img.crop((0, 0, width, height)) img = img.resize((500, 500), Image.ANTIALIAS)
6. 色調補正フィルターを適する関数
import numpy as np def apply_color_correction(img, brightness, contrast, saturation): img = np.array(img, dtype=np.float) img = np.clip(((img - 128) * contrast) + 128 + brightness, 0, 255) img = cv2.cvtColor(img, cv2.COLOR_RGB2HSV) img[..., 1] = np.clip(img[..., 1] * saturation, 0, 255) img = cv2.cvtColor(img, cv2.COLOR_HSV2RGB) return Image.fromarray(img.astype(np.uint8))
7. 実行結果
while True: brightness = cv2.getTrackbarPos("Brightness", window_name) - 50 contrast = (cv2.getTrackbarPos("Contrast", window_name) / 50) saturation = cv2.getTrackbarPos("Saturation", window_name) / 50 new_img = apply_color_correction(img, brightness, contrast, saturation) cv2.imshow(window_name, np.array(new_img)) key = cv2.waitKey(50) if key == 27: # ESCキーで終了 break cv2.destroyAllWindows()
8. まとめ
このチュートリアルでは、Pythonを使ってスライダーで色調補正フィルターを適用する方法を学びました。OpenCV, Pillow, および NumPy のライブラリを使用して、さまざまな色調補正効果を簡単に適用できることができます。