-
OpenCVを使用する方法:
import cv2 import numpy as np def get_dominant_color_opencv(image_path): # 画像の読み込み image = cv2.imread(image_path) # 画像をRGBからHSVに変換 hsv_image = cv2.cvtColor(image, cv2.COLOR_BGR2HSV) # ヒストグラムを作成 hist = cv2.calcHist([hsv_image], [0], None, [180], [0, 180]) # ヒストグラムのピークを取得 dominant_color = np.argmax(hist) return dominant_color
-
PILを使用する方法:
from PIL import Image import numpy as np def get_dominant_color_pil(image_path): # 画像の読み込み image = Image.open(image_path) # 画像をRGBに変換 rgb_image = image.convert('RGB') # 画像をNumPy配列に変換 np_image = np.array(rgb_image) # ヒストグラムを作成 hist, _ = np.histogramdd(np_image.reshape(-1, 3), bins=(16, 16, 16)) # ヒストグラムのピークを取得 dominant_color = np.unravel_index(np.argmax(hist), hist.shape) return dominant_color
上記のコード例では、image_path
に画像のファイルパスを指定して、主要な色を取得します。返される値は、ヒストグラムのピークを表す色の値です。色の表現方法は、使用するライブラリによって異なる場合があります。必要に応じて、色の変換や処理を行ってください。